Arrays R从列索引中选择值
我在Arrays R从列索引中选择值,arrays,r,Arrays,R,我在data.frame中有两组列:一个位置的时间和该位置的属性 > FRAME <- data.frame(cbind(rnorm(5, 0,1), rnorm(5, 0,1), rchisq(5, 1,4), rchisq(5,1,4))) > names(FRAME) <- c("Var1", "Var2", "Time1", "Time2") > FRAME$LONGEST <- apply(FRAME[,3:4], 1, function(x) wh
data.frame
中有两组列:一个位置的时间和该位置的属性
> FRAME <- data.frame(cbind(rnorm(5, 0,1), rnorm(5, 0,1), rchisq(5, 1,4), rchisq(5,1,4)))
> names(FRAME) <- c("Var1", "Var2", "Time1", "Time2")
> FRAME$LONGEST <- apply(FRAME[,3:4], 1, function(x) which.max(x))
> FRAME
Var1 Var2 Time1 Time2
1 0.2919722 -0.1069673 4.666482 1.556280
2 -0.6518142 1.1226106 4.867360 9.251785
3 -1.8612779 0.2874144 7.578548 1.820536
4 -0.7059450 -0.1036744 1.428684 16.937638
5 2.1793696 0.8993723 1.639895 7.942257
对我来说,检索正确列的最直接的方法会产生完全无用的结果
FRAME[,FRAME$LONGEST]
Var1 Var2 Var1.1 Var2.1 Var2.2
1 0.2919722 -0.1069673 0.2919722 -0.1069673 -0.1069673
2 -0.6518142 1.1226106 -0.6518142 1.1226106 1.1226106
3 -1.8612779 0.2874144 -1.8612779 0.2874144 0.2874144
4 -0.7059450 -0.1036744 -0.7059450 -0.1036744 -0.1036744
5 2.1793696 0.8993723 2.1793696 0.8993723 0.8993723
我错过了什么?有没有办法更改从不同于其引用的矩阵中选择哪个.max()
apply(FRAME,1,function(x) x[1:2][which.max(x[3:4])])
明亮的我想我已经尝试了
which.max
和apply
的所有组合。忘记了[]
既可以堆叠也可以嵌套。
apply(FRAME,1,function(x) x[1:2][which.max(x[3:4])])