如何删除 R 中字符向量中字符串的公共部分?

2024-04-28

假设一个字符向量如下

file1_p1_analysed_samples.txt
file1_p1_raw_samples.txt
f2_file2_p1_analysed_samples.txt
f3_file3_p1_raw_samples.txt

期望的输出:

file1_p1_analysed
file1_p1_raw
file2_p1_analysed
file3_p1_raw

我想比较元素并尽可能从开头和结尾删除字符串的部分,但保持它们唯一。

上面的只是一个例子。要移除的部分并非对所有元素都是通用的。我需要一个独立于上面示例中的字符串的通用解决方案。

到目前为止,我已经能够扔掉所有元素共有的部分,只要分隔符和生成的分割部分具有相同的长度。这是函数,

mf <- function(x,sep){
    xsplit = strsplit(x,split = sep)
    xdfm <- as.data.frame(do.call(rbind,xsplit))
    res <- list()
    for (i in 1:ncol(xdfm)){
        if (!all(xdfm[,i] == xdfm[1,i])){
            res[[length(res)+1]] <- as.character(xdfm[,i])
        }
    }
    res <- as.data.frame(do.call(rbind,res))
    res <- apply(res,2,function(x) paste(x,collapse="_"))
    return(res)
}

应用上述函数:

 a = c("a_samples.txt","b_samples.txt")
 mf(a,"_")
  V1  V2
 "a" "b"

2.

> b = c("apple.fruit.txt","orange.fruit.txt")
> mf(b,sep = "\\.")
      V1       V2
 "apple" "orange"

如果生成的分割部分长度不同,则此方法不起作用。


关于什么

files <- c("file1_p1_analysed_samples.txt", "file1_p1_raw_samples.txt", "f2_file2_p1_analysed_samples.txt", "f3_file3_p1_raw_samples.txt")
new_files <- gsub('_samples\\.txt', '', files)
new_files

...这产生

[1] "file1_p1_analysed"    "file1_p1_raw"         "f2_file2_p1_analysed" "f3_file3_p1_raw"     

这删除了_samples.txt脱离你的弦。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何删除 R 中字符向量中字符串的公共部分? 的相关文章

  • 双向条形图,两侧带有正标签ggplot2

    我尝试在 ggplot 中创建一个双向条形图 其中轴上方和下方的轴标签和数据标签均为正值 例如 如果您的数据是 myData lt data frame category c yes yes no no month c Jan Feb Ja
  • 液体字符串中的转义字符

    我正在尝试将包含各种尺寸的标签列表放在一起 在 Shopify 中使用 Liquid 尺寸使用单引号和双引号表示英寸和英尺 因为它同时使用两者 所以会导致字符串正确关闭的问题 我尝试过使用标准转义字符 但这似乎不起作用 是否可以在 Liqu
  • 在闪亮的应用程序中使用传单地图作为过滤器

    是否可以使用传单地图来过滤闪亮应用程序中的数据 就像在 Tableau 或 Power BI 中一样 方法是单击地图上的某个状态 然后根据条件过滤另一个图表或表格选择 None
  • 如何在 C++ 中对静态缓冲区执行字符串格式化?

    我正在处理一段对性能要求非常高的代码 我需要执行一些格式化的字符串操作 但我试图避免内存分配 甚至是内部库的内存分配 在过去 我会做类似以下的事情 假设是 C 11 constexpr int BUFFER SIZE 200 char bu
  • 替换 JSON 中的转义字符

    我想用空格替换 JSON 字符串中的 字符 我怎样才能做到这一点 我发现从 JSON 字符串中删除所有转义字符的最简单 最好的方法是将字符串传递到正则表达式 Unescape 方法 此方法返回一个没有转义字符的新字符串 甚至删除了 n t
  • ggplot() 使用scale::percent_format() 缩放产生奇怪的结果

    library tidyverse mtcars gt count cyl gt mutate prop n sum n gt ggplot aes x cyl y prop geom point scale y continuous la
  • 如何用C++解析复杂的字符串?

    我试图弄清楚如何使用 解析这个字符串sstream 和C 其格式为 string int int 我需要能够将包含 IP 地址的字符串的第一部分分配给 std string 以下是该字符串的示例 std string 127 0 0 1 1
  • C 中什么函数可以替换字符串中的子字符串?

    给定一个 char 字符串 我想查找所有出现的子字符串并将其替换为备用字符串 我没有看到任何简单的函数可以实现这一点
  • 如何在 R 树形图中省略标签?

    我一直在使用R 树形图包 http cran r project org web packages treemap treemap pdf我有一个 2 层深的树形图 我希望打印第二级标签 但不打印第一级标签 使用手册页中的示例 tmPlot
  • 使用 R:如何创建带有日期的时间序列对象?

    我有一年中每小时采集的一系列值 是否可以创建一个保留小时和年份值的时间序列对象 我的代码使用股票价格第一列中的值 但不使用日期 stockprices ts lt ts stockprices 1 start 1 freq 168 您没有提
  • 如何使用 RODBC 将数据帧保存到数据库生成的主键表

    我想使用 R 脚本将数据框输入到数据库中的现有表中 并且希望数据库中的表具有顺序主键 我的问题是 RODBC 似乎不允许主键约束 这是创建我想要的表的 SQL CREATE TABLE dbo results ID INT IDENTITY
  • 在 pandas 数据框中使用 Replace 和 str.startswith() 来重命名值

    我有一个名为 源 的列 其中包含数百行文本 问题是 其中一些可以组合在一起 而我正在努力在 Pandas 数据框中做到这一点 这是我的代码 df source replace df source str startswith share n
  • 生成因子变量水平的预测值

    我正在使用连续结果变量对多个因子变量进行回归lm 例如 fit lt lm dv factor hour factor weekday factor month factor year count data df 我想生成预测值 yhat
  • jQuery自动完成插件-自定义突出显示功能

    我的每个项目的自动完成结果如下所示 h3 Celebrity Sweepstakes h3 p 0 episodes p 但我只想突出显示 H3 内的标题 请参阅下面的 突出显示 功能 我不知道如何更改原始正则表达式以仅替换标题内的内容 s
  • Rstudio 命令历史记录

    这些天我经常使用 Rstudio 但最近注意到我的命令不再存储在历史记录中 我不知道这是从什么时候开始的 但可能是在安装最新版本时发生的 关于问题可能是什么的任何想法吗 Thanks 这是我们在 v0 93 73 中引入并在 v0 93 7
  • 如何加速 R for 循环?

    我正在为 R 中 GWmodel 包中的 gwr basic 函数运行以下 for 循环 我需要做的是收集任何给定带宽的估计参数的平均值 代码如下 library GWmodel data DubVoter Dub voter LARent
  • S4 类 [(子集)带有附加参数的继承

    这是一个扩展在 R 中的访问器函数中使用 callNextMethod https stackoverflow com q 24875284 2752888 2017 03 25 更新 为了说明如何仅在加载方法时失败 但在构建的包中时不会失
  • 仅匹配空格或字符串开头/结尾之间的整数的正则表达式

    我目前正在使用该模式 b d b 用这些条目测试它 numb3r 2 3454 3 214 test 我只希望它捕获 2 和 3454 它非常适合捕获数字单词 除了边界标志 b 包括 作为一个单独的词考虑 我尝试排除句点 但在编写模式时遇到
  • 列槽不足

    当尝试为 data table 中的每个变量 108 个变量 创建 12 个滞后时 我收到一条错误 指出列槽不足 此操作应创建大约 1200 个变量或列 Data A as data table Datos A Varnames names
  • ggplot堆叠条 - 隐藏标签但保留标签位置

    我在 ggplot 中有一个堆积条形图 其中 geom text 标签位于每个条形的中心 我想隐藏小条上的标签 以便图表看起来不会过于拥挤 我可以使用下面的代码来完成此操作 但它会弄乱标签的位置 正如您在下面的链接图片中看到的那样 它们不再

随机推荐

  • Linq:Entity Framework Core 中的 Join 与 Include/ThenInlude

    我正在开发一个使用 SQL Server 和 EF Core v3 的项目 我有 4 个彼此相关的表 这是我的表格方案 我针对这些表编写了 2 个 Linq 查询 其中一个使用像这样的连接 var result from emailTemp
  • 我的 self.view 尺寸错误

    我的视图尺寸错误 我仅运行横向 但视图报告纵向尺寸 视图宽度 768 000000 高度 1024 000000 有任何想法如何解决这个问题吗 我尝试过使用自动旋转 BOOL shouldAutorotateToInterfaceOrien
  • Outlook 代码中的 Excel FilePicker 对话框在后台打开

    我开发了一个 Outlook 宏 让用户选择并打开 Excel 文件 文件对话框在后台打开 对于用户来说 Outlook 应用程序似乎被卡住了 而它只是在等待用户在所有其他窗口后面的文件选择器对话框中选择文件 Dim SigFolder2
  • 无论如何,HTML 表格都不适合整个屏幕

    基本上 我的网站上有一个表格无法 100 适应浏览器屏幕的宽度 即使我将宽度更改为 110 它也只是与右侧重叠 但左侧仍然有一个边距空间 表格的外部空间 我希望表格从左到右完全压在浏览器屏幕上 根本没有空间或边框 我该怎么做呢 我已经尝试了
  • 响应式 CSS 背景图片

    我有一个网站 g floors eu 我想让背景 在CSS中我为内容定义了一个背景图像 也具有响应能力 不幸的是 除了我能想到的一件事之外 我真的不知道如何做到这一点 但这是一个解决方法 创建多个图像 然后使用 css 屏幕大小来更改图像
  • 应用程序域和线程

    引用MSDN的一段话 http msdn microsoft com en us library 6kac2kdh aspx http msdn microsoft com en us library 6kac2kdh aspx 一个或多个
  • 如何确定类型参数的方差?

    灵感来自Scala 中协变和逆变的现实示例 https stackoverflow com questions 5277526 real world examples of co and contravariance in scala我认为
  • JsonDocument 获取 JSON 字符串

    我需要一个从 JsonDocument 获取 JSON 字符串的示例 我可以通过以下方式获取属性RootElement GetProperty ItemName 然后打电话 GetString 但找不到一种方法来获取 JSON 字符串形式的
  • 如何控制台登录 couchdb

    首先 我真的很喜欢使用 CouchDB 可以做的所有事情 我来自很多前端 JavaScript 我使用 console log 来执行大量调试和测试任务 我想知道如何 console log 或者 CouchDB 中可能有什么更好的调试方法
  • 为 Blazor UI 应用程序实施防伪验证

    我们的应用程序是使用 Blazor Server 和与 Azure API 通信的 razor 页面构建的 我想知道对于 Blazor UI 我们是否应该实现防伪造 CSRF XSRF 如果可以 我可以获得一些如何实现的信息吗 我观察到为
  • Spring Webflux 抛出“block()/blockFirst()/blockLast() 正在阻塞,线程reactor-http-nio-2 不支持”

    我在 Spring Webflux 中执行阻塞操作时遇到一个小问题 我检索文章文档列表 并从文章文档列表中 我想更新另一个对象 当我执行下面的代码时 有时它会起作用 有时会抛出 block blockFirst blockLast 正在阻塞
  • 为什么 objdump 不显示 .bss、.shstratab、.symtab 和 .strtab 部分?

    我目前正在用 C 语言实现我自己的 objdump 实现 For my s选项 我必须显示 ELF 文件各部分的完整内容 我做得很好 但我显示的部分比 真正的 objdump 更多 事实上 它并没有输出 bss shstrtab symta
  • 从私钥中提取公钥

    我尝试通过以下方式以编程方式完成步骤 2 1 openssl genrsa out signing pem 2048 2 openssl rsa in signing pem outform PEM pubout out signing p
  • 如何让“wc -l”只打印没有文件名的行数?

    wc l file txt 输出行数和文件名 我只需要数字本身 而不是文件名 我可以做这个 wc l file txt awk print 1 但也许有更好的方法 试试这个方法 wc l lt file txt
  • 使用 Coffeescript 类和 RequireJS(或 Curljs 或类似)作为客户端浏览器库的示例

    我们想要使用 Coffeescript 开发一个浏览器 仅限客户端 库 特别是 除了纯函数之外 我们还倾向于大量使用 Coffeescript 的 类 功能 该库将相对较大 因此我们希望开始使用定义良好的模块模式 但不会达到我们希望每个咖啡
  • 使用 (imagemagick) `mogrify` 将 webp 文件转换为动画 gif 时如何避免丢失?

    使用此代码mogrify format gif webp我在另一个论坛找到的https superuser com questions 1506337 batch convert webp files to gif files offlin
  • 测试类内的扩展函数

    如果我们想测试某个类型的扩展函数 我们可以创建该类型的实例 调用该函数并检查返回值 但是测试类内部定义的扩展函数又如何呢 abstract class AbstractClass
  • 区分缺失值类型(无响应与跳过模式)

    对于可能没有仔细阅读密码本的数据集用户 您会建议如何区分缺失值类型 在这个玩具示例中 q2只询问那些回答 是 的人q1 这意味着有一个缺失值q2因为该人没有回应而缺失 并且有两个缺失值q2因为没有提出问题所以丢失了 library tidy
  • 如何在Java NIO中配置socks代理

    我正在开发一个工具 其中包括强制应用程序的所有网络流量通过Java中的socks代理 对于旧的 Socket API 我只需设置系统属性 DsocksProxyHost my host DsocksProxyPort my port 但它不
  • 如何删除 R 中字符向量中字符串的公共部分?

    假设一个字符向量如下 file1 p1 analysed samples txt file1 p1 raw samples txt f2 file2 p1 analysed samples txt f3 file3 p1 raw sampl