我想基于存储在另一个data.frame中的下标来对data.frame进行子集化。
例如,如果我有以下data.frame:
set.seed(1)
x <- rnorm(5)
df <- data.frame(x,x*x, x*2, x/2)
df
x x...x x...2 x.2
1 -0.6264538 0.39244438 -1.2529076 -0.31322691
2 0.1836433 0.03372487 0.3672866 0.09182166
3 -0.8356286 0.69827518 -1.6712572 -0.41781431
4 1.5952808 2.54492084 3.1905616 0.79764040
5 0.3295078 0.10857537 0.6590155 0.16475389
我想对[1,3]和[2,4]的值进行子集化。因此,我想用作子设置键的data.frame如下所示:
sub <- data.frame(row = c(1,2), col = c(3,4))
sub
row col
1 1 3
2 2 4
我的结果应如下所示:
c(df[1,3], df[2,4])
[1] -1.25290762 0.09182166
但是,所有这些操作都应在一个df[*]
内完成
我知道这很容易,但是我仍然无法弄清楚!因此,非常感谢。
答案 0 :(得分:1)
将其转换为matrix
和子集
df[as.matrix(sub)]
#[1] -1.25290762 0.09182166