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

meg*_*egv 6 grep r dataframe

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

m <- m[-grep("nchar(m$f_name)>3", m$f_name]
Run Code Online (Sandbox Code Playgroud)

nei*_*fws 11

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

subset(m, nchar(as.character(f_name)) <= 3)
Run Code Online (Sandbox Code Playgroud)

  • 但要注意缺失. (2认同)

elc*_*ano 8

对于那些寻找 tidyverse 方法的人,您可以使用dplyr::filter

m %>% dplyr::filter(nchar(f_name) > 3)
Run Code Online (Sandbox Code Playgroud)


oeo*_*o4b 5

尝试这个:

m[!nchar(as.character(m$f_name)) > 3, ]
Run Code Online (Sandbox Code Playgroud)