使用行名称打印一列数据框

时间:2013-04-08 10:58:33

标签: r dataframe

考虑具有自定义行名称的数据框:

> data <- data.frame(a=1:3,b=2:4,c=3:5,row.names=c("x","y","z"))
> data
  a b c
x 1 2 3
y 2 3 4
z 3 4 5

如果我选择多列,R会将它们与行名称一起打印出来:

> data[,c("a","c")]
  a c
x 1 3
y 2 4
z 3 5

但如果我选择只有一列,R会将其打印为一个简单的向量,而不是行名称:

> data[,"c"]
[1] 3 4 5

我的问题是,如何告诉R打印一列的方式与打印多列的方式相同,即的行名

3 个答案:

答案 0 :(得分:34)

您可以使用drop参数(另请参阅?'['):

data[,"c", drop=FALSE]

这有帮助吗?

答案 1 :(得分:1)

一种更简单的方法是data['c'],它将产生相同的输出:

indx c x 3 y 4 z 5

答案 2 :(得分:-1)

与 data.frames 相比,从 R 中的矩阵获取列似乎保留了它们的(行)名称。我在 R 中发现的(许多!)奇怪的不一致之一......要获得命名向量,其中一个似乎有效:

as.matrix(data['c'])[,1]

array(data['c'], dimnames=list(rownames(data)))