【问题标题】:r call column by name data.frame return data.framer 按名称调用列 data.frame 返回 data.frame
【发布时间】:2015-10-02 17:25:33
【问题描述】:

我知道如何按列名调用 data.frame,但它返回的是数字向量而不是 data.frame。如何强制它返回 data.frame?

data = data.frame(rand1 = rnorm(5, sd = 0.3),rand2 = rnorm(5, sd = 0.3) )

data[,'rand2']

[1]  0.54355118 -0.34235808  0.30914102 -0.06509097  0.29061738

class(data[,'rand2'])

[1] "numeric"

【问题讨论】:

  • 去掉逗号。数据框是一个列表,所以你可以做data["rand2"]并保留data.frame类

标签: r dataframe


【解决方案1】:

从你的例子你可以简单地使用

data = data.frame(rand1 = rnorm(5, sd = 0.3),rand2 = rnorm(5, sd = 0.3) )

data[,'rand2',drop=F]

     rand2
1 -0.07895436
2  0.55478780
3 -0.47263459
4  0.17346880
5  0.47885452

class(data[,'rand2',drop=F])
[1] "data.frame"

data.frames 的其他一些好的想法可以在here找到

【讨论】: