我认为这是一件非常快的事情,但我想我应该问一下,因为我永远都记不住怎么做了……
假设我有一个具有以下标头的data.frame (称为DF):"Blah"、"Bleh"和"Meh"。
我还有一个字符类向量foo,其元素与DF的头部相同。
Blah <- rnorm(10)
Bleh <- runif(10)
Meh <- rnorm(10)
DF <- data.frame(Blah,Bleh,Meh)
foo <- c(rep("Blah",3),rep("Bleh",3),rep("Meh",3))
我想做以下事情:根据foo中的第i个元素设置DF子集。我原以为这个--DF$foo[1]--能行得通,但它没有。
我知道我可以使用names和==来设置子集,但我认为还有一种更短的(单行)方法?
发布于 2011-01-25 05:06:36
DF$foo[1]尝试返回名为foo (不存在)的列的第一个元素。你想要DF[foo[1]]。
发布于 2011-01-25 13:23:35
subset(DF, select=foo[3])
Blah
1 0.814939149951
2 -0.800644571486
3 -0.424080059851
4 1.012792429940
5 1.291888735720
6 0.642523425131
7 0.537486547429
8 0.315031122082
9 -0.296439716108
10 0.372453578695发布于 2011-01-25 05:08:33
这是你想要的吗?
DF[ ,foo][1]
啊,Joshua在我打字的时候发了帖子...您还可以选择列的区域,例如:
DF[1:3,foo][1]https://stackoverflow.com/questions/4787091
复制相似问题