有列表,第一个(list1)有id,name,age和其他的(list2,list3,..)有ids和测试值(唯一的)。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 LIST1每个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 /一个。
有什么不对?
改变了它。谢谢。 – anat
这里是[相关的问题](http://stackoverflow.com/questions/41149718/overwriting-a-row-with-a-matched-id-value-in-the-same-dataframe/41150472#41150472)from昨天。我的答案使用'match'来填充缺失值的行。 'merge'可以让你的问题更容易解决。像'merge(df1,df2,by =“id”,all = TRUE)''。 – lmo
合并对我的目的不好,我不想创建一个不同的文件并合并两个..我只是想从每个list2,list3到list1具有相同的ID复制一个值。无论如何, – anat