r按名称调用列data.frame返回data.frame

r按名称调用列data.frame返回data.frame,r,dataframe,R,Dataframe,我知道如何按列名调用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] "nu

我知道如何按列名调用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 = 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,可以找到其他一些好主意

去掉逗号。数据帧是一个列表,因此您可以执行
data[“rand2”]
并保留data.frame类