我的数据框具有(8211个观察值),但是下面是一个简化的示例。如果我在R中有以下数据帧
Var1 Freq
a/b/e 1
b/a/e 2
a/c/d 3
d/c/a 1
如何获取以下数据框:
Var1 Freq
a/b/e 3
a/c/d 4
答案 0 :(得分:1)
这是一种方法
df1[, "Var1"] <- sapply(strsplit(df1$Var1, "/"), function(x) paste0(sort(x), collapse = "/"))
aggregate(Freq ~ Var1, df1, FUN = sum)
# Var1 Freq
#1 a/b/e 3
#2 a/c/d 4
我们使用strsplit
在Var1
上拆分列"/"
。这将返回一个字符向量列表,我们sort
,paste
再回到aggregate
。
数据
df1 <- structure(list(Var1 = c("a/b/e", "a/b/e", "a/c/d", "a/c/d"),
Freq = c(1L, 2L, 3L, 1L)), .Names = c("Var1", "Freq"), row.names = c(NA,
-4L), class = "data.frame")