如何对数据框进行子集化:
df <- data.frame(a = c(1,2,3), b = c(4,5,6))
即使只选择了一列,我始终会返回数据框?
选择两列时的结果:
class( df[,1:2] )
[1] "data.frame"
仅选择一列时,结果不符合要求:
class( df[,1] )
[1] "numeric"
选择一列时所需的结果相当于:
class( data.frame(a = c(1,2,3) )
答案 0 :(得分:1)
从李哲元澄清:
df[1]
df[,1, drop = FALSE]
返回仅包含第1列的数据框。
如果你想要行和列的子集,这些对我有用:
df[1:2, 1, drop = FALSE]
subset(df[1], a < 3)
subset(df, subset = a<3, select = a)
答案 1 :(得分:1)
正如评论中所建议的那样,这两种可能性都能提供我正在寻找的东西。感谢您帮助我更好地理解这一点!
df[1]
df[,1,drop=FALSE]