如何将多列合并为一列?

时间:2017-08-23 14:41:56

标签: r dplyr multiple-columns

我目前在R中的多个列中分布数据。我正在寻找一种方法将这些信息作为每个行的向量放入一列。

是否有这样做的功能?

例如,数据如下所示:

DF <- data.frame(id=rep(LETTERS, each=1)[1:26], replicate(26, sample(1001, 26)), Class=sample(c("Yes", "No"), 26, TRUE))

select(DF, cols=c("id", "X1","X2", "X23", "Class"))

如何将列“X1”,“X2”,“X23”合并到包含每个ID的数字类型变量的向量中?

Data Example

1 个答案:

答案 0 :(得分:1)

喜欢这个?

library(reshape2)
melt(df) %>% dcast(id ~ ., fun.aggregate = list)

Using id, Class as id variables
   id             .
1   A  422, 74, 439
2   B 879, 443, 923
3   C 575, 901, 749
4   D  813, 747, 21
5   E 438, 526, 675
6   F 863, 562, 474
7   G 103, 713, 918
8   H 585, 294, 525
9   I  115, 76, 175
10  J 953, 379, 926
11  K 679, 439, 377
12  L 816, 624, 538
13  M 678, 226, 142
14  N 667, 369, 586
15  O 795, 422, 248
16  P  165, 22, 612
17  Q 294, 476, 746
18  R 968, 368, 290
19  S 238, 481, 980
20  T 921, 482, 741
21  U  550, 15, 296
22  V 121, 358, 625
23  W 213, 313, 242
24  X    92, 77, 58
25  Y 607, 936, 350
26  Z  660, 42, 275

虽然注意事项:我不知道你的最终用例,但是这可能让你觉得你可能不想拥有它。通常更可取的是坚持整洁的数据,例如, https://cran.r-project.org/web/packages/tidyr/vignettes/tidy-data.html