我想保留第一个下划线之后的部分。请参阅示例代码。
colnames(df)
"EGAR00001341740_P32_1" "EGAR00001341741_PN32"
我尝试过,但没有给出P32_1
但只有P32
这是错误的。
sapply(strsplit(colnames(df), split='_', fixed=TRUE), function(x) (x[2]))
期望的输出:P32_1, PN32
可以使用正则表达式通过匹配零个或多个非下划线的字符来完成([^_]*
) 从头开始 (^
) 的字符串,后跟下划线 (_
) 并将其替换为空格 (""
)
colnames(df) <- sub("^[^_]*_", "", colnames(df))
colnames(df)
#[1] "P32_1" "PN32"
With strsplit
,它会在任何地方分裂split
字符出现。一种选择是str_split
from stringr
其中有一个选项可以指定“n”,即分割部分的数量。如果我们选择n = 2
,我们得到 2 个子串,因为它只会在第一个子串处分割_
library(stringr)
sapply(str_split(colnames(df), "_", n = 2), `[`, 2)
#[1] "P32_1" "PN32"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)