のリストを持ち、最初のもの(list1)はid、name、ageを持ち、他のもの(list2、list3、..)はIDとテスト値(unique)を持ちます。MATCH関数がr
リスト1:
id age name bio-test
1 40 danny
2 16 nora
3 35 james
4 21 ben
は、リスト2(バイオテスト):
id test passed year
1 100 yes 1
5 80 yes n/a
4 55 no 2
私は、各IDにテスト値をリスト1に追加しようとしています(すべてのidがテスト値を持っていません)。
これはコードの一部である:
for (i in 1:length(list1)) {
list1$test1value <- list2$test[match(list1$id[i], list2$id[i]),
nomatch = NA_integer_, incomparables = NULL)] }
代わりIDによって試験値を探し、それがLIST2からちょうど最初のテスト値をコピーして、200個の細胞および他の3000にコピーがNであります/ A.
何が間違っていますか?
を変更しました。ありがとうございました。 – anat
ここから[関連する質問](http://stackoverflow.com/questions/41149718/overwriting-a-row-with-a-matched-id-value-in-the-same-dataframe/41150472#41150472)から昨日。私の答えは 'match'を使って欠損値の行を埋めています。あなたの問題は 'merge'で簡単に解決されます。 'merge(df1、df2、by =" id "、all = TRUE)のようなものです。 – lmo
マージは私の目的には良くないので、別のファイルを作成して2つをマージする必要はありません。各リスト2から1つの値を複写したいのですが、同じIDを持つリスト1にコピーしたいだけです。 – anat