假设我想从数据框或矩阵中选择第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
但我仍然在寻找更短的符号(如果可能的话)。
答案 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