我有24000行和4列的数据库如下:
mydata<-read.csv("data.csv", header=T, sep=',', stringsAsFactors = FALSE, strip.white = FALSE)
p<- read.csv("datab.csv", header = TRUE, sep = ";",stringsAsFactors = FALSE, strip.white = FALSE )
> mydata
ID TF score
1 hsa-let-7a-1 RORA2 878
2 hsa-let-8c-1 AML1 1000
3 hsa-let-5f-1 ZIC1 994
4 hsa-let-7a-1 ZIC2 968
. . .
. . .
我有矢量p
str(p)
Factor w/ 16 levels "hsa-miR-150",..: 16 14 3
>p
hsa-let-7a-1
hsa-miR-92a
hsa-miR-425
hsa-miR-192
我希望得到mydata
的{{1}}的子集ID
mydata
p
我用了这段代码:
out <- subset(mydata, ID %in% p)
但是当我确定mydata
中存在p
的某些元素时,它不会检索ID
的子集
当我确定p
中有ID
的某些元素存在于> out
[1] ID TF score zScore
<0 rows> (or 0-length row.names)
中时(我自己添加用于测试)
{{1}}
有人可以帮助我,我的错误在哪里。是否可能是由于数据库规模庞大?
答案 0 :(得分:1)
删除代码第二行的额外括号,并更改strip.white
,strip.white = TRUE
的值。
mydata <- read.csv("data.csv", header = TRUE, sep=',', stringsAsFactors = FALSE, strip.white = TRUE)
p <- read.csv("datab.csv", header = TRUE, sep = ";", stringsAsFactors = FALSE, strip.white = TRUE)
变量p
是data.frame,因此您必须包含列名。
out <- subset(mydata, ID %in% p$name)