我有两个要left_join
的数据集列表。它们是有序的,因此list1
上的第一个数据集应与list2
上的第一个数据集,list1
上的第二个数据集和list2
上的第二个数据集连接在一起,依此类推。 。我一直在尝试使用lapply
来执行此操作,但收到以下错误消息:
以下是一些示例数据:
set.seed(1234)
n1 <- LETTERS[1:10]
x1 <- rnorm(10,1)
y1 <- rnorm(10,2)
z1 <- rnorm(10,3)
n2 <- LETTERS[5:14]
x2 <- rnorm(10,1)
y2 <- rnorm(10,2)
z2 <- rnorm(10,3)
df1 <- data.frame(n1,x1,y1,z1)
df2 <- data.frame(n2,x2,y2,z2)
list1 <- list(df1, df2)
n1 <- LETTERS[5:14]
x3 <- rnorm(10,2)
y3 <- rnorm(10,3)
z3 <- rnorm(10,4)
n2 <- LETTERS[1:10]
x4 <- rnorm(10,2)
y4 <- rnorm(10,3)
z4 <- rnorm(10,4)
df3 <- data.frame(n1,x3,y3,z3)
df4 <- data.frame(n2,x4,y4,z4)
list2 <- list(df3, df4)
这是我要工作的代码:
lapply(list1, function(x) left_join(x, list2[[x]]))
答案 0 :(得分:2)
我认为您应该在此处使用Map
Map(dplyr::left_join, list1, list2)
要使用lapply
,可以遍历索引。
lapply(seq_along(list1), function(x) dplyr::left_join(list1[[x]], list2[[x]]))
答案 1 :(得分:2)
使用purrr
,您可以执行以下操作:
map2(.x = list1,
.y = list2,
~ left_join(.x, .y))
[[1]]
n1 x1 y1 z1 x3 y3 z3
1 A -0.2070657 1.522807 3.134088 NA NA NA
2 B 1.2774292 1.001614 2.509314 NA NA NA
3 C 2.0844412 1.223746 2.559452 NA NA NA
4 D -1.3456977 2.064459 3.459589 NA NA NA
5 E 1.4291247 2.959494 2.306280 2.656588 3.006893 3.822210
6 F 1.5060559 1.889715 1.551795 4.548991 2.544531 3.830006
7 G 0.4252600 1.488990 3.574756 1.965240 2.633476 2.627698
8 H 0.4533681 1.088805 1.976344 1.330366 3.648287 3.826213
9 I 0.4355480 1.162828 2.984862 1.992395 5.070271 4.850232
10 J 0.1099622 4.415835 2.064051 3.777084 2.846602 4.697609
[[2]]
n2 x2 y2 z2 x4 y4 z4
1 E 2.1022975 3.4494963 1.193969 1.504417 2.174001 4.022363
2 F 0.5244069 0.9313573 2.417924 2.355550 3.166989 4.831141
3 G 0.2905600 1.1446354 1.891110 0.865392 2.103735 2.755712
4 H 0.4987419 1.7193770 1.985038 2.878204 3.168185 4.169026
5 I -0.6290935 1.0056599 2.837690 2.972917 3.354968 4.673166
6 J -0.1676193 1.0314857 3.563056 4.121117 2.947895 3.973724
7 K -1.1800396 0.8926818 4.647817 NA NA NA
8 L -0.3409932 0.7480141 2.226647 NA NA NA
9 M 0.7057061 1.4761719 4.605910 NA NA NA
10 N 0.5341025 1.5031500 1.842191 NA NA NA
答案 2 :(得分:1)
应为import { Topology } from "topojson-specification" // needed type for mesh API
// alternatively use a custom compatible json type
import us_ from "./counties-albers-10m.json"
const us: Topology = us_ as Topology;
topojson.mesh(us, ...) // this should work now
而不是mapply
:
lapply