Paste multiple columns togetherスレッドのように、複数の列を組み合わせて1つの「グループ化」変数を取得する必要があります。問題は、弦の似たようなコンテンツに堅牢にしたいということです。上記のようなデータについて列を組み合わせて一意性を保持する
tmp1 <- data.frame(V1 = c("a", "aa", "a", "b", "bb", "aa"),
V2 = c("a", "a", "aa", "b", "b", "a"))
tmp2 <- data.frame(V1 = c("+", "++", "+-", "-|", "||"),
V2 = c("-|", "--", "++", "|-+", "|"))
それは出力の列は識別不能になるだろうと一緒に列の異なる種類の混合をもたらし得るように、""
、|
、-
、+
ようないくつかの共通のセパレータと機能apply(x, 1, paste, collapse = sep)
を使用して失敗します。
カラムは異なるタイプ(数値、因子、文字など)であると仮定できます。
予想される出力は、行ごとに1つのIDを持つベクトルで、各IDは2つの列間の一意の値の組み合わせに割り当てられます。 IDの実際の形式は私にとって重要ではありません。例えば、tmp1
データ用
1 2 3 4 5 2
。
この方法をお勧めしますか?私はパフォーマンスに関心があることに注意してください。
予想される出力は – akrun
です@akrunこのような情報を追加するために編集しました – Tim
まだ明確ではありません。あなたのデータセットにない 'sep'パラメータの値を選ぶだけでいいですか? 'paste(c(" a "、" b "、" ++ ")、collapse =" -mycollapsestring ")' '" a-mycollapsestring-b-mycollapsestring-++ "' –