如果我有一个列表例如:
Userid Total
Apple1 12
Apple2 8
Apple3 15
Apple4 3
Apple5 4
Apple6 6
Apple7 20
Apple8 22
Apple9 5
Apple10 11
Orange1 15
Orange2 8
但我想一般计算所有Apple项目,如何从最后减去数字,我有一个代码,如果它是一个数字,但是我不知道当它成为什么时两位数。
我目前正在使用:
substr(userid, 1, nchar(userid)-1)
,这适用于Apple1-9,但Apple10将成为Apple1,任何建议如何做。
答案 0 :(得分:1)
尝试gsub
替换所有数字:
x <- c("Apple10", "Apple3", "Orange123")
gsub("[0-9]", "", x)
#[1] "Apple" "Apple" "Orange"
这意味着,检查x
的每个元素并替换任何数字。
或者,如果您的数据位于名为df
的数据框中:
df$Userid <- gsub("[0-9]", "",df$Userid)
现在您可以按照自己的意愿进行订购
答案 1 :(得分:0)
使用stringr包和其他方法:
require(stringi)
x <- c("Apple10", "Apple3", "Orange123")
str_replace_all(str = x, pattern = "\\d{1,3}$", replacement = "")
[1] "Apple" "Apple" "Orange"
要替换为“”的模式是字符串末尾的1到3位数。