在下面的示例中,我想删除任何带有“。”的行。在行名中
data<-matrix(nrow=10,ncol=3,1)
rownames(data)<-c("A.1","B.2",LETTERS[3:10])
我试过这样的grep:
data[( grepl(".", rownames(data))), ]
但是,我认为这里缺少一些东西。我将不胜感激任何帮助谢谢
在下面的示例中,我想删除任何带有“。”的行。在行名中
data<-matrix(nrow=10,ncol=3,1)
rownames(data)<-c("A.1","B.2",LETTERS[3:10])
我试过这样的grep:
data[( grepl(".", rownames(data))), ]
但是,我认为这里缺少一些东西。我将不胜感激任何帮助谢谢
'.'
匹配任何字符,因此需要转义。
data <- matrix(nrow=10, ncol=3,1)
rownames(data) <- c("A.1", "B.2", LETTERS[3:10])
data[!grepl('\\.', rownames(data)), ]
[,1] [,2] [,3]
C 1 1 1
D 1 1 1
E 1 1 1
F 1 1 1
G 1 1 1
H 1 1 1
I 1 1 1
J 1 1 1
尝试使用:
grep("[.]", x =rownames(data))
例如:
data[( grepl("[.]", rownames(data))), ]
这将返回包含“。”的行。在名字中。
你方法的问题是“。” 是一个元字符。当您将它放在方括号中时,它会变成常规字符。