根据条件删除R中矩阵的行
假设在R中有以下矩阵:根据条件删除R中矩阵的行,r,matrix,rows,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] [,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
但我不知道如何编写代码。任何帮助都将不胜感激!
谢谢将矩阵转换为数据帧,然后使用
grepl
检查三个或更多字母的匹配模式:
df <- df[!grepl("\\w/\\w/\\w.*", df$letters),]
df如果矩阵名为m
,则m=m[nchar(m[,1])而且,仅供参考,一个矩阵只能有一种数据类型,因此当您同时有字符串和数字时,这是一个非常糟糕的选择。您应该使用一个数据框,它可以在每列中有不同的数据类型。让mat
作为矩阵的名称。然后只需按“字母”执行mat[nchar(mat[,1])您是指字符还是字母(即A-Z)?这将保留行并移动所需行。这是您打算执行的操作。!grepl(…)