R:从数据框

时间:2016-06-22 17:40:33

标签: r

假设我想从数据框或矩阵中选择第1,第3和第12个元素:

m = matrix(1:12, 3, 4)
m[c(1,3,12)] # as expected: selects the 1st, 3rd, and 12th element

然而,这似乎不适用于数据框:

df = data.frame(m)
df[c(1,3,12)] # doesn't select the elements

我正在使用的是:

as.vector(df)[c(1,3,12)] # works as expected

是否有更简单的方法可以达到相同的效果?

修改

as.vector(df)[c(1,3,12)] # does not work

正如Richard Scriven指出:

unlist(df, use.names=FALSE)[c(1, 3, 12)] # do work

但我仍然在寻找更短的符号(如果可能的话)。

1 个答案:

答案 0 :(得分:0)

  df<-data.frame(11:13,14:16,17:19,20:22)
  df
  #    X11.13 X14.16 X17.19 X20.22
  #  1     11     14     17     20
  #  2     12     15     18     21
  #  3     13     16     19     22


  c(df[df==11], df[df==13],df[df==22])
  # [1] 11 13 22