用R搜索数据库

时间:2013-09-25 10:15:47

标签: r

我有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}}

有人可以帮助我,我的错误在哪里。是否可能是由于数据库规模庞大?

1 个答案:

答案 0 :(得分:1)

删除代码第二行的额外括号,并更改strip.whitestrip.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)