1

我有这个数据集

  names age height weight
1   joe  23    170     65
2  jack  25    173     73
3   jim  27    168     71
4 james  23    172     70

我想获取身高低于 173 的人的所有信息,所以我这样做了

short <- c(t(subset(dfD, height < 173, select = names)))

short返回这个

[1] "joe" "jim" "jack"

但是当我尝试从该列表中获取所有数据时......

dfD[(dfD[1] == short),]

它只返回这个

  names age height weight
1   joe  23    170     65

我怎样才能让它工作?

我希望能够创建名单并以这种方式获取他们的所有数据......这怎么可能?

4

1 回答 1

2

subset()并将dlply()选择数据框的子集,并将数据框更改为列表。这是你想要的吗?

## Your data
df = read.table(text = "  names age height weight
  joe  23    170     65
  jack  25    173     73
  jim  27    168     71
  james  23    172     70", header = TRUE, sep = "")

  library(plyr) 
   short = subset(df, height < 173)
  data.list = dlply(short, "names")

或者

  short = subset(df, height < 173, "names")
  subset(df, names %in% short[[1]])
于 2012-05-03T07:07:53.230 回答