【发布时间】:2022-01-11 03:44:19
【问题描述】:
我在重新排列以下数据框时遇到问题:
set.seed(45)
dat1 <- data.frame(
name = rep(c("firstName", "secondName"), each=4),
numbers = rep(1:4, 2),
value = rnorm(8)
)
dat1
name numbers value
1 firstName 1 0.3407997
2 firstName 2 -0.7033403
3 firstName 3 -0.3795377
4 firstName 4 -0.7460474
5 secondName 1 -0.8981073
6 secondName 2 -0.3347941
7 secondName 3 -0.5013782
8 secondName 4 -0.1745357
我想重塑它,使每个唯一的“名称”变量都是一个行名,其中“值”作为沿该行的观察值,而“数字”作为列名。有点像这样:
name 1 2 3 4
1 firstName 0.3407997 -0.7033403 -0.3795377 -0.7460474
5 secondName -0.8981073 -0.3347941 -0.5013782 -0.1745357
我查看了 melt 和 cast 以及其他一些东西,但似乎没有一个能胜任。
【问题讨论】:
-
可以在链接的问题中找到更规范的答案,现在名称为Reshape three column data frame to matrix ("long" to "wide" format)。在我看来,最好将这个作为副本关闭。
-
另一个问题只有一个答案和很多选项这一事实并不一定比这更好;这也有很多选择,但有几个答案。此外,重复的定义是“这个问题已经在这里有答案”(带有指向另一个早先提出的问题的链接)。