gpt4 book ai didi

r - "Collapse"使用列名作为 ID 将多列分成两列

转载 作者:行者123 更新时间:2023-12-04 11:38:29 25 4
gpt4 key购买 nike

在 R 中,我试图将数据帧的多列折叠成两列,并将第一个数据帧中的列名复制到结果数据帧中它们自己的列中。例如,我有以下数据框 df :

A     B     C     D
1 2 3 4
5 6 7 8

我正在尝试获取此输出,这在执行 ANOVA 测试时很有帮助:
 DV     IV
A 1
A 5
B 2
B 6
C 3
C 7
D 4
D 8

我一直在通过像这样声明新的数据框来手动解决这个问题:
 df2 <- data.frame("DV" = c(rep("A", 2), rep("B", 2), rep("C", 2), rep("D", 2)),
"IV" = c(df$A, df$B, df$C, df$D))

我怀疑aggregate() 或melt() 可以更有效地做到这一点,但我在语法中迷失了。提前致谢!

最佳答案

您可以使用 melt 包中的 reshape2

library(reshape2)
melt(df, variable.name = "DV", value.name = "IV")

DV IV
1 A 1
2 A 5
3 B 2
4 B 6
5 C 3
6 C 7
7 D 4
8 D 8

关于r - "Collapse"使用列名作为 ID 将多列分成两列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29338830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com