【发布时间】:2015-03-30 05:15:04
【问题描述】:
在 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() 可以更有效地执行此操作,但我迷失在语法中。提前致谢!
【问题讨论】: