我在一列中有一个带有用户名的csv,后面是每个用户的反馈评级,满分为100。
E.g。 James89
我希望找到一种方法来分割名称和评级,例如:通过使用正则表达式在最后两位数之前插入逗号。这可能吗?和/或有更好的方法吗?
df1 = data.frame(Product = c(rep("ARCH78"), rep("AUSFUNGUY91"), rep("AddiesAndXans96"), rep("AfroBro79")))
上面的代码是我正在处理的数据的一小部分。我希望得到这个输出:
ARCH 78
AUSFUNGUY 91
AddiesAndXans 96
AfroBro 79
我尝试过这段代码(灵感来自this回答:
df1$P2 <- gsub("(.*?)(..)", "\\1", df1$Product)
它似乎有效,但输出有问题:
ARCH78 AR
AUSFUNGUY91 AUUNY
AddiesAndXans96 AdesdXs
AfroBro79 AfBr9
答案 0 :(得分:1)
至于以下内容:
我希望找到一种方法来分割名称和评级,例如:通过使用正则表达式在最后两位数之前插入逗号。
您只需
即可实现df1 = data.frame(Product = c(rep("ARCH78"), rep("AUSFUNGUY91"), rep("AddiesAndXans96"), rep("AfroBro79")))
gsub("(\\d{2})$",",\\1",df1$Product)
## => [1] "ARCH,78" "AUSFUNGUY,91" "AddiesAndXans,96" "AfroBro,79"
请参阅IDEONE demo
您可以进一步将具有反向引用",\\1"
的替换\1
调整为最后2位数。