我使用的是R,我想将DataFrame-1转换为DataFrame-2
DataFrame-1
Variable1 Variable2
aa1 X1
aa1 Y2
aa1 Z1
bb1 Y1
bb1 Y2 我想要创建DataFrame-2,它将如下所示
Variable1 Variable2
aa1 X1, Y2, Z1
bb1 Y1, Y2发布于 2018-02-23 19:30:10
dat <- data.frame(Var1 = c("aa1", "aa1", "aa1", "bb1", "bb1"), Var2 = c("X1", "Y2", "Z1", "Y1", "Y2"), stringsAsFactors = FALSE)
cbind(Var1 = unique(dat$Var1),
Var2 = sapply(unique(dat$Var1), function(x) paste0(dat$Var2[dat$Var1 == x], collapse = ", "), USE.NAMES = F))
Var1 Var2
[1,] "aa1" "X1, Y2, Z1"
[2,] "bb1" "Y1, Y2" 发布于 2018-02-23 19:34:19
library(dplyr)
df1 <- df %>%
group_by(Variable1) %>%
summarise(Variable2 = paste(Variable2, collapse = ", ")) %>%
data.frame()
df1产出如下:
Variable1 Variable2
1 aa1 X1, Y2, Z1
2 bb1 Y1, Y2样本数据:
df <- structure(list(Variable1 = c("aa1", "aa1", "aa1", "bb1", "bb1"
), Variable2 = c("X1", "Y2", "Z1", "Y1", "Y2")), .Names = c("Variable1",
"Variable2"), class = "data.frame", row.names = c(NA, -5L))发布于 2018-02-23 19:40:50
这是cars数据集的一个示例:
split <- split(cars$dist, cars$speed)
a <- list(length(split))
for (i in 1:length(split)){
a[i] = paste(split[[i]], sep = "", collapse = ", ")}
df <- data.frame(x = labels(split), y = unlist(a))输出将如下所示:
x y
1 4 2, 10
2 7 4, 22
3 8 16
4 9 10
5 10 18, 26, 34
6 11 17, 28
7 12 14, 20, 24, 28
8 13 26, 34, 34, 46
9 14 26, 36, 60, 80
10 15 20, 26, 54
11 16 32, 40
12 17 32, 40, 50
13 18 42, 56, 76, 84
14 19 36, 46, 68
15 20 32, 48, 52, 56, 64
16 22 66
17 23 54
18 24 70, 92, 93, 120
19 25 85https://stackoverflow.com/questions/48954773
复制相似问题