R矩阵获取行列数和实际值

标签 r for-loop matrix

我有一个矩阵如下

 B = matrix( 
   c(2, 4, 3, 1, 5, 7), 
   nrow=3, 
   ncol=2)

 B             # B has 3 rows and 2 columns 
 #    [,1] [,2] 
 #[1,]    2    1 
 #[2,]    4    5 
 #[3,]    3    7

我想创建一个包含 3 列的 data.frame:行号、列号和上面矩阵的实际值。我正在考虑写2个for循环。有没有更有效的方法来做到这一点?

我想要的输出(我只显示下面的前两行)

rownum columnnum value
1 1 2
1 2 1

最佳答案

尝试

cbind(c(row(B)), c(col(B)), c(B))

或者

library(reshape2)
melt(B)

根据 @nicola 的评论,所需的输出可能按行优先顺序排列。在这种情况下,对矩阵进行转置并执行相同的操作

TB <- t(B)
cbind(rownum = c(col(TB)), colnum = c(row(TB)), value = c(TB))

关于R矩阵获取行列数和实际值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31590534/

相关文章:

r - R 编程中的矩阵

r - 登录失败,错误代码 ' '。当使用 DSN 与 Rstudio 连接到 MS SQL 2016 时

使用来自不同数据的 auto.arima 的参数对数据运行 ARIMA 模型

r - 使用 GARCH(1,1) 预测波动率

python - 迭代第二个 numpy 数组时对一个 numpy 数组进行条件判断

java - 实时更新textView(使用for)

C++ PCA - 计算协方差矩阵

r - 数据帧的负运算

Chrome 示例扩展中的 Javascript for...in 循环

c - 使用 C 中的 X 和 Y 值将缓冲区读取为矩阵