これは私のサンプルデータセットです
> 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