想象一下,你在R中有以下矩阵:
[,1] [,2] [,3] [,4] [,5]
[1,] "A/B" 3 4 5 7
[2,] "A/C" 8 6 7 7
[3,] "A/B/C" 8 8 5 4
删除第一列中有两个以上字母的行的最简单方法是什么?我认为理由应该是这样的:
if nchar(matrix[,1]!=3) then remove that row
但我不知道如何编码。任何帮助,将不胜感激! 感谢
答案 0 :(得分:1)
将矩阵转换为数据框,然后使用grepl
检查三个或更多字母的匹配模式:
df <- df[!grepl("\\w/\\w/\\w.*", df$letters),]
上述评论中的一些建议可能对您有用,但基于正则表达式的解决方案具有额外的好处,即它非常强大,并且如果您的需求在将来的某个时刻发生变化,则可以轻松更改。