【发布时间】:2019-01-10 11:27:52
【问题描述】:
d3:
Col1 Col2
PBR569 23
PBR565 22
PBR565 22
PBR565 22
我正在使用这个循环:
for ( i in 1:(nrow (d3)-1) ){
for (j in (i+1):nrow(d3)) {
if(c(i) == c(j)) {
print(c(j))
# d4 <- subset.data.frame(c(j))
}
}
}
我想比较 Col1 中的所有行并消除不一样的行。然后我想输出一个数据框,其中只有 col1 中具有相同值的数据框。
预期输出:
Col1 Col2
PBR565 22
PBR565 22
PBR565 22
不确定我的嵌套循环是怎么回事?是因为我没有指定列名吗?
【问题讨论】:
-
和什么不一样?
-
@Ryan Col1 的所有名称本质上应该具有相同的名称。因此,对于我的示例,它只是所有名为 PBR565 的。
-
你可以做
d3[d3$Col1 == 'PBR565',] -
或者
t <- table(d3$Col1); d3[d3$Col1 == names(t)[which.max(t)],],如果你想保留最频繁出现的值 -
d3[duplicated(d3$Col1) | duplicated(d3$Col1, fromLast = TRUE), ]将删除Col1仅出现一次的所有行。
标签: r for-loop nested-loops