已经提出了类似的问题,但它们都指在一个关键列中收集多个列。
我需要两个键中的多个列。
这是我拥有的数据框:
ID ... 测量_A.1 测量_A.2 测量_B.1 测量_B.2 1 8.25 23.5 4 5 2 8.6 22.5 3 4
如果我使用以下代码,我会得到:
df %>%
gather(key = measure_A, value = "score_A", measure_A.1, measure_A.2) %>%
gather(key = measure_B, value = "score_B", measure_B.1, measure_B.2)
ID ... measure_A score_A measure_B score_B 1 测量_A.1 8.25 测量_B.1 4 1 测量_A.1 8.25 测量_B.1 4 1 测量_A.2 23.5 测量_B.2 5 1 测量_A.2 23.5 测量_B.2 5 2 测量_A.1 8.6 测量_B.1 3 2 测量_A.1 8.6 测量_B.1 3 2 测量_A.2 22.5 测量_B.2 4 2 测量_A.2 22.5 测量_B.2 4
我想要的是这个:
ID ... measure_A score_A measure_B score_B 1 测量_A.1 8.25 测量_B.1 4 1 测量_A.2 23.5 测量_B.2 5 2 测量_A.1 8.6 测量_B.1 3 2 测量_A.2 22.5 测量_B.2 4
在我看来,我必须减少一些东西,但我不知道如何结合收集命令来做到这一点。我找到了一个带有过滤器的解决方案,但我不明白它是如何工作的。