将具有成对的列的宽数据帧压缩为两列

时间:2019-03-10 20:27:59

标签: r dataframe dplyr tidyr

我有一个形状如下的数据框:

    data <- data.frame("subject" = c("John", "David", "Julia", "Anna"), "att1" = c("A", "A", "B", "C"), 
               "value1" = runif(4, 1, 2), "att2" = c("B", "C", "A", "A"), "value2" = runif(4,1,2))

  subject att1   value1 att2   value2
1    John    A 1.884899    B 1.695328
2   David    A 1.352952    C 1.543145
3   Julia    B 1.929525    A 1.000639
4    Anna    C 1.486212    A 1.722314

我希望它看起来像这样:

  subject att    value
1    John   A 1.884899
2    John   B 1.695328
3   David   A 1.352952
4   David   C 1.543145
5   Julia   B 1.929525
6   Julia   A 1.000639
7    Anna   C 1.486212
8    Anna   A 1.722314

我知道我需要的帽子与tidyr的gather功能有关,但是我无法使其起作用。重要的是要注意,我的原始数据有更多列,其中包含我需要压缩的成对的值和属性。 预先感谢!

0 个答案:

没有答案