我认为这是一个超级快速的事情,但我想我会问,因为我不能为我的生活记住怎么做...
假设我有一个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))
我想按照DF
中的第i个元素执行以下操作:子集foo
。我认为 - DF$foo[1]
- 会起作用,但事实并非如此。
我知道我可以使用names
和==
进行分组,但我认为有更短的(1行)方式?
答案 0 :(得分:3)
DF$foo[1]
尝试返回名为foo
的列的第一个元素(不存在)。你想要DF[foo[1]]
。
答案 1 :(得分:2)
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
答案 2 :(得分:1)
这是你想要的吗?
DF[ ,foo][1]
啊,Joshua在我打字时发布了......您可以选择列的区域,例如:
DF[1:3,foo][1]