3

我有以下list1list2

df1   <- data.frame(x=(1:3),Q=(3:5))
df2   <- data.frame(x=(1:3),Q=(3:5))
df3   <- data.frame(x=(1:3),Q=(3:5))
list1 <- list(df1,df2,df3)
list2 <- list(2,3,6)

我想根据中的相应值从Q每个元素中随机抽样list1 list2

因此,我将从Q2 次中对第一对列表元素进行采样。

到目前为止,我已经成功:

df1   <- data.frame(x=(1:3),Q=(3:5))
z <- 2
sapply(1:z,function(i) sample(df1$Q,1))

但我正在努力尝试mapply在两个列表中的所有元素对中做到这一点。

4

2 回答 2

5

这是一种mapply方法:

mapply(function(x, y) sample(x[["Q"]], y, replace = TRUE), list1, list2)
于 2012-12-11T17:41:06.683 回答
0

不确定这是否是您所追求的,但它可能会有所帮助:

FUN <- function(x, z) sapply(1:z,function(i) sample(x[["Q"]], 1))
lapply(seq_along(list1), function(i) FUN(list1[[i]], list2[[i]]))
于 2012-12-11T17:40:22.087 回答