我在R
中有以下数据框| month_range | total | month_range | total_target|
| 06-2018 | 200 | 08-2018 | 150 |
我只想从Village_Name中删除数字,我想要的数据框将是
ID Village_Name
1 23
2 Name-23
3 34
4 Vasai2
5 23
我怎样才能在R?
中完成答案 0 :(得分:4)
我们可以使用grepl
来匹配数字从开头(^
)到结尾($
)的一个或多个数字,并否定(!
)它这样所有数字只有元素变为FALSE而其他元素变为TRUE
i1 <- !grepl("^[0-9]+$", df1$Village_Name)
df1[i1, ]
根据OP的帖子,它也可能
data.frame(ID = head(df1$ID, sum(i1)), Village_Name = df1$Village_Name[i1])
# ID Village_Name
#1 1 Name-23
#2 2 Vasai2
或另一种选择是转换为数字,使得非数字元素为NA,并更改为具有is.na
的逻辑向量
df1[is.na(as.numeric(df1$Village_Name)),]
答案 1 :(得分:2)
以下是使用sub
的另一个选项:
df1[nchar(sub("\\d+", "", df1$Village_Name)) > 0, ]
基本思路是从Village_Name
列中删除所有数字,然后断言至少剩下一个字符,这意味着该条目不是完全数字。
但是,我可能会选择@akrun在实践中给出的grepl
选项。