使用行名称在R中对数据进行子集

时间:2013-09-23 14:19:39

标签: r

我正试图在R中获取我的数据子集。我试过这个,但是我得到了意想不到的结果!

>str(data)
num [1:500, 1:2000] 5.65
>y<-c("rowname1"   , "rowname2", ... )
> spotA<-data[y]

NULL
> spotA
 [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA

我也尝试了以下方式:

>spotA<-data[c("rowname1"   , "rowname2", ... )]

我得到了上述结果。我期望的是使用数字条目获得尺寸为16 2000的sotA,而不是NA!有人可以帮助我,我的错误在哪里?

1 个答案:

答案 0 :(得分:1)

试试这个:

data<-as.data.frame(matrix(runif(20),nrow=10,ncol=2));
y<-paste("row",row.names(data),sep=".")
row.names(data)<-y
data;
             V1         V2
row.1  0.3108385 0.09000282
row.2  0.3254967 0.44500053
row.3  0.3993356 0.71400316
row.4  0.2039391 0.11712378
row.5  0.4105687 0.70830021
row.6  0.5245575 0.36039628
row.7  0.2277783 0.71712201
row.8  0.6282813 0.33950400
row.9  0.1005018 0.94331287
row.10 0.3843297 0.58610738

data[row.names(data)%in%y[c(2,4,5,8,9)],]
             V1        V2
row.2 0.3254967 0.4450005
row.4 0.2039391 0.1171238
row.5 0.4105687 0.7083002
row.8 0.6282813 0.3395040
row.9 0.1005018 0.9433129