删除字符串长度大于n的所有行

时间:2011-12-27 01:24:25

标签: r grep dataframe

我有一个数据框m,我想删除f_name列的条目大于3的所有行。我假设我可以使用类似的内容

m <- m[-grep("nchar(m$f_name)>3", m$f_name]

4 个答案:

答案 0 :(得分:11)

要稍微改写您的问题,您希望保留f_name中的条目长度为3或更短的行。那怎么样:

subset(m, nchar(as.character(f_name)) <= 3)

答案 1 :(得分:3)

试试这个:

m[!nchar(as.character(m$f_name)) > 3, ]

答案 2 :(得分:1)

强制性的data.table解决方案:

setDT(m)
m[ nchar(f_name) <= 3 ]

答案 3 :(得分:0)

对于那些希望使用整洁方法的人,可以使用dplyr::filter

m %>% dplyr::filter(nchar(f_name) > 3)