私はRで初めてで、数百の異なる識別番号(これらは患者です)を含む「ID」と呼ばれる列を含む「CT」と呼ばれる data.frame を持っています。ほとんどの数値は 1 回表示されますが、一部の数値は 2 回または 3 回表示されます (したがって、異なる行に表示されます)。CT data.frame に、これらの特定の患者の発生回数を示す「countID」という新しい変数を挿入したいと思います (複数のレコードが数回表示されるはずです)。このフォーラムを読んだ後、2 つの異なる戦略を試しました。
CT <- cbind(CT, countID=sequence(rle(CT.long$ID)$lengths)
しかし、これは機能しません。カウントは 1 つしかありません。2 番目の戦略: 2 つの列 (1 つは ID、もう 1 つはカウント) を持つデータ フレームを作成し、このデータ フレームを CT と一致させます。
tabs <- table(CT.long$ID)
out <- data.frame(item=names(unlist(tabs)),count=unlist(tabs)[],stringsAsFactors=FALSE)
rownames(out) = c()
head(out)
# item count
# 1 1.312 1
# 2 1.313 2
# 3 1.316 1
# 4 1.317 1
# 5 1.321 1
# 6 1.322 1
したがって、これは正常に機能しますが、2 つの data.frames を溶かすことはできません。「out」と「CT」の間で行数が一致しません (もちろん、out の行数は少なくなります)。誰かがdata.frame CTに直接出現回数を追加するか、2つのdata.frameを正しく一致させるエレガントなソリューションを持っているのでしょうか?