这似乎应该是非常简单的应用函数,但我发现自己正在努力.
我有一个矩阵(数据帧也可以)数据:
u <- matrix(sample(seq(4),20,T),5,4)
u
[,1] [,2] [,3] [,4]
[1,] 1 2 4 2
[2,] 4 3 2 2
[3,] 3 3 3 1
[4,] 3 2 4 4
[5,] 4 1 3 4
Run Code Online (Sandbox Code Playgroud)
假设我只想使用第j列中的元素(如excel中的indirect)来从每一行中选择相应的列值.
例如,给定col(j)= 3
第1行将得到对应于row = 1的元素,col(j = 3)= 4并返回2(row(1):col(4))
第2行将得到对应于row = 2的元素,col(j = 3)= 2并返回3(row(2):col(2))
...
第5行将获得对应于row = 5,col(j = 3)= 3并返回3(第(5)行,col(3))的元素
我最终得到了这些值的向量v <-c(4,2,... 3)
您可以使用矩阵索引:
i <- seq_len(nrow(u))
j <- u[, 3]
u[cbind(i, j)]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1799 次 |
| 最近记录: |