r - 如何将数据矩阵转换为相对于坐标的数据框
问题描述
我有坐标向量
x = c(1, 2, 3, 4)
y = c(1, 2, 3)
以及这些位置的观测值矩阵
matrix(round(rnorm(12, 10, 4)), nrow = 4, ncol = 3)
[,1] [,2] [,3]
[1,] 10 9 11
[2,] 14 11 13
[3,] 15 10 6
[4,] 14 11 17
我想把它转换成一个数据框,这样
x y z
1 1 10
1 2 9
1 3 11
2 1 14
2 2 11
2 3 13
我是 R 新手并试图处理循环,但是对于更大的矩阵和坐标,有什么直接的方法可以做到这一点吗?
解决方案
另一种方法是将数据转换为data.frame,进行一些更改并使用 tidyr 的 pivot_long() 函数。请注意,这是一个新功能,因此您可能需要重新安装该库。
library(tidyr)
x = c(1, 2, 3, 4)
y = c(1, 2, 3)
Data <- matrix(round(rnorm(12, 10, 4)), nrow = 4, ncol = 3)
Data <- as.data.frame(Data)
names(Data) <- c("1","2","3")
Data$x = c(1,2,3,4)
pivot_longer(Data, c("1","2","3"), names_to = "y", values_to = "z")
推荐阅读
- powershell - 在 Powershell 中反复提示输入凭据
- javascript - 不能将 ical-generator 用作仅浏览器的库
- python - cx_Oracle 更新表时执行/executemany 错误
- docker - 如何使用 OpenCV、Kafka 和 Docker 扩展来自多个摄像头的视频处理
- python - 如何缩放其中包含日期时间字段的数据框(作为索引)?
- javascript - data() 中声明的变量在监听器中未定义
- powershell - WINRM 上的 Robocopy
- java.util.scanner - 如何在方法中使用扫描仪
- c# - 什么是 Office365 日历提要 URL?
- graphql - 为什么 type-graphql 处理的参数总是以未定义的形式出现