サンプルデータを作成します。回以上現れるIDごとRデータフレーム内の文字列にリストの列を強制変換
id <- c(12, 32, 42, 42, 52, 52, 67, 67)
relationship_id <- c(15,1,59,1,61,6,59,1)
sample.data <- data.frame(id,relationship_id)
をrelationship_idを連結:
combo <- aggregate(relationship_id ~ id, data = sample.data, paste, sep=",")
table(combo$relationship_id)
Error in table(combo$relationship_id) :
all arguments must have the same length
私は考え出しこのエラーの原因:
class(combo$relationship_id)
[1] "list"
しかし、リストベクトルを文字ベクトルに強制しようとすると、次のようになります。
combo["relationship_id"] <- lapply(combo["relationship_id"], as.character)
> head(combo)
id relationship_id
1 12 15
2 32 1
3 42 c("59", "1")
4 52 c("61", "6")
5 67 c("59", "1")
これは連結構文を含んでいます...出力を解析して使用できるようにすることができますが、なぜこれが起こっているのですか?出力をクリーンアップする簡単な方法はありますか?
'sep'を' collapse'に変更すると、期待したことができるはずです。 – A5C1D2H2I1M1N2O1R2T1
SOに関する最初の質問として、再現性のある質問がうまく機能します。 (+1) – A5C1D2H2I1M1N2O1R2T1