首先,如果这个问题太天真或者之前已经重复过,我深表歉意。我试图在论坛中找到它,但我将其作为问题发布,因为我未能找到答案。
我有一个数据框,其列名称如下;
head(rownames(u))
[1] "A17-R-Null-C-3.AT2G41240" "A18-R-Null-C-3.AT2G41240" "B19-R-Null-C-3.AT2G41240"
[4] "B20-R-Null-C-3.AT2G41240" "A21-R-Transgenic-C-3.AT2G41240" "A22-R-Transgenic-C-3.AT2G41240"
Run Code Online (Sandbox Code Playgroud)
我想要的是使用 R 中的正则表达式来提取第一个破折号和最后一个句点之间的字符串。
预期结果是,
[1] "R-Null-C-3" "R-Null-C-3" "R-Null-C-3"
[4] "R-Null-C-3" "R-Transgenic-C-3" "R-Transgenic-C-3"
Run Code Online (Sandbox Code Playgroud)
我尝试跟随但没有运气......
gsub("^[^-]*-|.+\\.","\\2", rownames(u))
gsub("^.+-","", rownames(u))
sub("^[^-]*.|\\..","", rownames(u))
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我解决这个问题吗?
预先非常感谢。
沙尼.
这是与以下一起使用的解决方案gsub:
v <- c("A17-R-Null-C-3.AT2G41240", "A18-R-Null-C-3.AT2G41240", "B19-R-Null-C-3.AT2G41240", "B20-R-Null-C-3.AT2G41240", "A21-R-Transgenic-C-3.AT2G41240", "A22-R-Transgenic-C-3.AT2G41240")
gsub("^[^-]*-([^.]+).*", "\\1", v)
Run Code Online (Sandbox Code Playgroud)
正则表达式匹配:
^[^-]*- 零个或多个字符以外的字符--- 连字符([^.]+)- 第 1 组匹配并捕获除点之外的一个或多个字符.*- 任何字符(甚至包括换行符,因为perl=T未使用),直到字符串末尾的任意次数。| 归档时间: |
|
| 查看次数: |
5543 次 |
| 最近记录: |