2016-05-04 32 views
-2

私は2つの文字列のリストを持っており、どちらの文字列が両方のリストにあるのかを見たい。R:2つのリストで同じ文字列を見つける

私は交差またはsetequalを使用することができるようにリストをベクトルに変換しようとしましたが、数値にすべての文字列を変換しました(明らかな答えがあれば謝罪します)。それが起こらないリスト。

今後の最善の方法は何ですか?

EDIT: 私はこれらのデータフレームを持っている:

dput(s) 
structure(list(V1 = structure(c(3L, 2L, 1L, 4L), .Label = c("24d2afb212410711de0e237e5435e104", 
"2a3d9ca791a579a14883de538a012e24", "a90b03209a8095ec406809d89d5035c3", 
"f271eb38cc409c6bfe9dcf2bfcab8471"), class = "factor")), .Names = "V1", row.names = c(NA, 
-4L), class = "data.frame") 

dput(r) 
structure(list(V1 = structure(c(2L, 1L, 4L, 3L), .Label = c("24d2afb212410711de0e237e5435e104", 
"2a3d9ca791a579a14883de538a012e24", "7320e2e921df862968954d4b60e2a80a", 
"a9f47ec7c488d2bcddf2c1adc2bf6305"), class = "factor")), .Names = "V1", row.names = c(NA, 
-4L), class = "data.frame") 

私は両方にある文字列、すなわち

2a3d9ca791a579a14883de538a012e2424d2afb212410711de0e237e5435e104を見つけたいです。

as.character()は文字列を保持するためには機能しません。それを要因に変換するために何か他のものがあるのですか、それともうまくいく別の操作がありますか?

+2

は、同じ長さのこれらの 'lists'ていますか? 'list'の要素の' class'について 'list'の' str'をチェックしますか?小さな再現可能な例と期待される出力を提供してください。 – akrun

+2

彼らは要因のように聞こえます。 'as.character()'を試してみて、もう一度コードを試してみてください。 – cory

+0

詳細情報を追加しました。私はas.character()を試してみて、ほとんどの文字を完全に削除しました。 – Michael

答えて

0

データフレーム内でも列を指定する必要があります。 grep

intersect

intersect(r$V1, s$V1) 
#[1] "2a3d9ca791a579a14883de538a012e24" "24d2afb212410711de0e237e5435e104" 

unlist(sapply(r$V1, function(i)grep(i, s$V1, value = TRUE))) 
#[1] "2a3d9ca791a579a14883de538a012e24" "24d2afb212410711de0e237e5435e104" 
+0

ありがとう、Sotos、しかし、私は交差を使用しようとすると、私は空のデータフレームを取得します。 警告メッセージ: grep(i、s、value = TRUE): 引数 'pattern'の長さが1より大きく、文字列の長さが1より大きい場合、grepを使用すると、これが表示されます。最初の要素が使用されます。 – Michael

+0

うーん、リストの 'str()'を共有できますか? 'sapply'はその警告を処理する必要があります – Sotos

+0

str(s): ' 'data.frame':\t 40909 obs。 $ V1:ファクターW/33212レベル "0000734ec06af49a2477e8c044fe51fc"、..:16139 15105 13860 2836 20143 29594 21391 15141 11485 32833 ... ' STR(R): ' 'data.frame':\t 1変数の1091319号。 1変数: $ V1:1090874レベルの「00002df85d03395bdeb018c35ef8ede8」、:1080008 717274 1041734 720889 167066 968941 328961 807515 89060 817033 ... – Michael

関連する問題