R Dataframe:获取第2列,其中第1列值= x?

时间:2013-07-03 07:46:16

标签: r dataframe

基本问题,但我是初学者抱歉:-)而且我仍然在努力处理所有这些不同的数据类型等。所以我在第1列中有一个具有不同变量名的表。在第2列中这些变量具有某些值。我想现在提取某个变量的值。

VarNames<-read.table(paste("O:/Daten/RatsDaten/CodesandDescription/VarNamesDir.asc"), sep="", skip=0,header=FALSE)

表格看起来像这样

Test1      5
Test2      7
Test3      1

那么如何使用它们的名称访问这些Test变量值? VarNames [“Test1”,2]没有用。我也没试过任何其他选项。是否有更好的数据类型选项,或者我如何使用舒适的数据框进行操作?

2 个答案:

答案 0 :(得分:3)

你应该有这两种情况中的一种,

Testxx是VarNames的rownames,你可以使用rownames(VarNames)来测试它,在这种情况下你应该这样做:

    VarNames["Test1",1]    

或者Testxx是列的组成部分,你应该这样做:

    VarNames[VarNames$v =='Test1',2]

第一个选项:

m <- matrix(1:3,ncol=1,dimnames=list(paste0('Test',1:3),NULL))
m['Test1',]
Test1 
    1 

第二个选项

m1 <- data.frame(v=paste0('Test',1:3),b=1:3)
m1[m1$v=='Test1',]
      v b
1 Test1 1

答案 1 :(得分:0)

由于您的示例不可重现,不清楚第一列是表示行名还是具有值TestX的变量。

如果它是变量,您的表实际上如下所示:

V1         V2
Test1      5
Test2      7
Test3      1

因此,您可以通过为整行调用Test2或仅为值VarNames[VarNames$V1 == "Test2",]获取VarNames[VarNames$V1 == "Test2",2]的值。您指定2,因为它是第二列。

如果第一列表示行名称,则整个行的调用为VarNames["Test2",],或者@agstudy仅对值进行回答VarNames["Test2",1]。您指定1,因为它是第一列,Test2是行名,因此不包含在列中。