【发布时间】:2012-07-24 10:03:52
【问题描述】:
我在一个数据框中总结了 3 个不同的组。数据框如下所示:
d <- data.frame(v1 = c("A","A","A","B","B","B","C","C","C"),
v2 = c(1:9), stringsAsFactors = FALSE)
我想要的是将 A 的值与 B 的值进行比较。还将 A 的值与 B 的值进行比较,最后将 B 的值与 C 的值进行比较
我构造了 2 个 for 循环来迭代 v1 以提取要比较的组。但是,for 循环给了我所有可能的组合,例如:
A 与 A
A 与 B
A 与 C
B 与 A
B 与 B
B 与 C
C vs. A 等等...
这是我的 for 循环:
for(i in unique(d$v1)) {
for(j in unique(d$v1)) {
cat("i = ", i, "j = ", j, "\n")
group1 <- d[which(d$v1 == i), ]
group2 <- d[which(d$v1 == j), ]
print(group1)
print(group2)
cat("---------------------\n\n")
}
}
我怎样才能设法只迭代数据框d,以便在第一次迭代中 group1 包含 A 的值,group2 包含 B 的值。在第二次迭代中 group1 包含 A 和 group2 的值C。作为最后的比较,group1 包含 B 的值,group2 包含 C 的值。
不知何故,我完全被这个问题所困扰,并希望在这里找到答案。
干杯!
【问题讨论】:
-
你想进行什么样的比较?
-
好吧,我的原始数据框不是只有 v2,而是最多有 10 列。所以基本上 group1 是 d 的子数据框,有 11 列(c1=v1 和 c2:11 = 附加信息),用于 v1 == A。因此,group2 是相同的子集,但具有 v1 == B 的值。我希望这是有道理的......
标签: r iteration unique dataframe combinations