我在 R 数据框中有一列数据,其值如下:
Blue-#105
Green-#8845
Yellow-#5454
Blue-#999
我想删除最后的数字部分(从 -# 开始),以便 Blue-#999
和 Blue-#105
在绘图时被认为是同一件事。我怎样才能做到这一点?
最佳答案
使用正则表达式:
> DF <- data.frame(col=c("Blue-#105", "Green-#8845", "Blue-#999"))
> DF
col
1 Blue-#105
2 Green-#8845
3 Blue-#999
> DF$col <- gsub("-\\#.*", "", DF$col)
> DF
col
1 Blue
2 Green
3 Blue
>
这里我们说所有以 -#
开头的字符串(其中注释字符 #
需要转义)然后是 whatever - -- 在正则表达式术语中是 .*
:任何字符(点)重复多少次就适合多少次(星号)--- 将被空字符串替换,换句话说, 已删除。
关于r - 拆分 R 数据框中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3805452/