【发布时间】:2014-12-05 17:37:53
【问题描述】:
在 R 中,如何根据另一列中的指定值列表索引一个 R 列中的值列表?
我知道如何选择和修改特定的行号,例如:
> foo=data.frame(a=100*1:5,b=LETTERS[5:1])
> foo
a b
1 100 E
2 200 D
3 300 C
4 400 B
5 500 A
> foo$a[c(1,3,5)]= foo$a[c(1,3,5)] + c(3,2,1)
> foo
a b
1 103 E
2 200 D
3 302 C
4 400 B
5 501 A
但是,如果我想选择和修改具有“b”值“A”、“E”和“C”的行怎么办?我认为which 可能是正确的工具,但我能想到的最好的工具是:
> foo$a[which(is.element(foo$b,c("A","E","C")))]
[1] 103 302 501
此时我被卡住了,因为虽然我选择了正确的行,但它们的顺序不正确,所以我无法单独修改它们。
【问题讨论】: