【发布时间】:2016-06-30 08:36:46
【问题描述】:
我有一个看起来像这样的数据集
site <- c("A", "B", "C", "D", "E")
D01_1 <- c(1, 0, 0, 0, 1)
D01_2 <- c(1, 1, 0, 1, 1)
D02_1 <- c(1, 0, 1, 0, 1)
D02_2 <- c(0, 1, 0, 0, 1)
D03_1 <- c(1, 1, 0, 0, 0)
D03_2 <- c(0, 1, 0, 0, 1)
df <- data.frame(site, D01_1, D01_2, D02_1, D02_2, D03_1, D03_2)
我正在尝试合并 D0x_1 和 D0x_2 列,以便列中的值用斜杠分隔。我可以用下面的代码做到这一点,它工作得很好:
library(dplyr)
library(tidyr)
df.unite <- df %>%
unite(D01, D01_1, D01_2, sep = "/", remove = TRUE) %>%
unite(D02, D02_1, D02_2, sep = "/", remove = TRUE) %>%
unite(D03, D03_1, D03_2, sep = "/", remove = TRUE)
...但问题是它需要我多次输入每个unite 对,而且它在我的数据集中的大量列中很笨拙。 dplyr 有没有办法在类似模式的列名之间联合起来,然后在列之间循环? unite_each 似乎不存在。
【问题讨论】: