2

我有 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其中ID存在mydata的子集,p 我使用了这段代码:

out <- subset(mydata, ID %in% p)

但它没有检索到mydata但是当我确定某些元素存在于(我自己添加以进行测试)当我确定某些元素p存在于ID 我已经得到流动输出时的子集pID

> out
[1] ID     TF     score  zScore
<0 rows> (or 0-length row.names)

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

4

1 回答 1

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)
于 2013-09-25T14:46:25.053 回答