私はそれを見ていないだけだと思いますが、ネット、メーリングリストのアーカイブ、または FAQ で見つけた同様のものはすべて、私の問題を実際に解明することができませんでした.
私が見つけた最も近いものはこれでした: strsplitを行ごとに適用します
2 つの文字列と 1 つの数値列を持つ df があります。次のように入力します。
df=data.frame(name1=c("A","B","C","D"),
name2=c("B","A","D","C"),
nums=c(1,1,4,4),
stringsAsFactors=F)
ここで、これで一意の行を見つけたいと思いますが、2 つの名前列のみに基づいています。そして、それらの列の場合、列の順序は重要ではないためduplicated
、正しく理解していれば使用できません。
そこで、2 つの名前列を行ごとに組み合わせ、行ごとに並べ替え、paste
ベクトルの a を出力することを考えました (長さ = 2 のようなものと組み合わせてsapply
)。
しかし、私はそれを働かせませんでした。
これまで for ループを使用してきましたが、元のデータに時間がかかります。
for(i in 1:length(df$name1)){
mysort=sort(c(df$name1[i],df$name2[i]))
df$combname[i]=paste(mysort[1],mysort[2])
}
どんな提案でも大歓迎です。多分私は間違った方法で理解unique
しているだけです。sapply