我在R中工作,有列表A和列表B,其中列表A <<
for(i in range(1:length(B[[y]]))){for(j in range(1:length(A[[x]]))){if(A[[x]] == B[[y]]){mutate(B, newvalue = A[[z))}}}
答案 0 :(得分:0)
如@ G5W所示,您可以使用merge
函数。首先,您应该将列表转换为数据框,然后转换为merge
。之后,您可以将结果数据框转换回列表。
基本上,不需要使用for循环自己实现算法。它已经在基数R中完成。 请参见下面的代码:
l1 <- list(x = 3:7, y = letters[3:7])
l2 <- list(x = 1:10, z = letters[1:10])
df1 <- as.data.frame(l1, stringsAsFactors = FALSE)
df2 <- as.data.frame(l2, stringsAsFactors = FALSE)
df_m <- merge(df1, df2)
l_m <- as.list(df_m)
l_m
输出:
$`x`
[1] 3 4 5 6 7
$y
[1] "c" "d" "e" "f" "g"
$z
[1] "c" "d" "e" "f" "g"