根据条件删除R中的Matrix行

时间:2018-04-24 15:08:45

标签: r matrix rows

想象一下,你在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

但我不知道如何编码。任何帮助,将不胜感激! 感谢

1 个答案:

答案 0 :(得分:1)

将矩阵转换为数据框,然后使用grepl检查三个或更多字母的匹配模式:

df <- df[!grepl("\\w/\\w/\\w.*", df$letters),]

enter image description here

Demo

上述评论中的一些建议可能对您有用,但基于正则表达式的解决方案具有额外的好处,即它非常强大,并且如果您的需求在将来的某个时刻发生变化,则可以轻松更改。