私はAPIから得ている2つのリストを持っています。どの項目が両方のリストに存在するかを判断するために、Rの2つのリストを比較する必要があります。私はintersect()コマンドでこれを行うことを望んでいましたが、うまくいきませんでした。さらに調べると、各リストは実際にカンマとエスケープ文字で区切られた複数の項目からなる単一のベクトルであることに気付きました。これらのベクトルを複数項目リストに変換してリストを比較することは可能ですか?ここではいくつかのサンプルコードは、次のとおりです。2つの文字ベクトルをRのエスケープ文字と比較するにはどうすればよいですか?
私が何をしたいと思います:
> intersect(x,y)
[[1]]
[1] "c"
私が代わりに何を見ている:
> intersect(x,y)
list()
> as.character(x)
c(\"a\", \"b\", \"c\")
> as.character(x)
c(\"c\", \"d\", \"e\")
をここで何が起こっていますか? xとyをどのように比較すればよいですか?これらのベクトルをリストに変換してintersect()コマンドを使う方法はありますか?
編集:洗練された例とあなたが私の質問に答えていないとして、私はまだ、ここに推測しているが、x
場合は、そのような出力を取得されるために、私が見る唯一の方法はあるデータソース
'dput(x)'と 'str(x)'の出力を表示しますか?私は 'x'が本当に文字ベクタであるか、' as.character'がそれを文字に強制しているのか不思議です。 – Aaron
エラーを再現できません。リストバージョンはこのコードに基づいて正常に動作しました。 Ryan Rungeが答えて指摘したように、 'list()'ではなく 'c()'を使うべきです –
本当に 'as.character'の正確な出力ですか?通常は '[1]'で始まり、文字列を引用符で囲みます。 – Aaron