任何面向行的类比,按名称选择数据帧列?

时间:2013-05-30 18:56:15

标签: r dataframe

数据框的列可以通过name(与colname相同)提取,但不能提取rowname。示例数据帧:

> dbar
   aa    bb    cc
r1  1   one 1e+01
r2  2   two 1e+01
r3  3 three 1e+01
r4  4  four 1e+01
r5  5  five 1e+01

Rgames> dbar$aa
[1] 1 2 3 4 5
Rgames> dbar$r2 #doesn't work
NULL
 # have to to something like
Rgames> subset(dbar,rownames(dbar) =='r3') #or dbar[rownames(dbar=='r3'),] 
   aa    bb    cc
r3  3 three 1e+01

我可以看到允许df$somename搜索行名称意味着要求data.frame函数验证所有列和行名称是否唯一。所以,我问了太多:-)还是我应该坚持上面使用的方法?

1 个答案:

答案 0 :(得分:3)

这是一个有点开放的问题,但是如果你按行进行子集化并希望使用rowname,@ rmk是正确的。

示例数据框:

    DF <- data.frame(A = rep(c(1,2), 5), B = rep(10, 10))
    row.names(DF) <- letters[1:10]

DF["a",]返回:

  A  B
a 1 10        

或者您可以使用行索引DF[1,]