这是我的示例数据集
> a
V1 V2
1 A1 5437
2 A1 5437
3 A1 5437
4 A2 1819
5 A2 1758
6 A2 1212
7 A2 1212
8 A3 1456
我想计算列 V2 的唯一值,因此结果将是:
A1 1
A2 3
A3 1
我已经开始编写我的代码,但我不知道 - 这应该是什么样子:
old_id <- a[1,2]
old_art <- a[2,1]
for (i in nrow(a)){
if (old_id == a[1,i+2] && old_art == a[i+2,1]){
new_id[i] <- old_id[1,i+2]
new_art[i] <- i
}
i <- i+1
}
我知道非常简单的解决方案,例如:
tapply(a[,2], a[,1], function(t) length(unique(t)))
但我的任务是使用循环功能 - 可能是 for 和 if