小编can*_*ers的帖子

使用列名称将"多个列"折叠为两列,作为ID

在R中,我试图将数据帧的多个列折叠为两列,第一个数据帧中的列名被复制到结果数据帧中的各自列中.例如,我有以下数据框df:

A     B     C     D
1     2     3     4
5     6     7     8
Run Code Online (Sandbox Code Playgroud)

我正在尝试获取此输出,这在执行ANOVA测试时很有用:

 DV     IV
 A      1
 A      5
 B      2
 B      6
 C      3
 C      7
 D      4
 D      8
Run Code Online (Sandbox Code Playgroud)

我一直在通过声明新数据框来手动执行此操作:

 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))
Run Code Online (Sandbox Code Playgroud)

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

r dataframe

4
推荐指数
2
解决办法
917
查看次数

标签 统计

dataframe ×1

r ×1