R循环槽不同列表

时间:2019-06-08 08:35:18

标签: r list loops

我在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))}}}

1 个答案:

答案 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"