我有以下list1
和list2
:
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
随机抽样
所以我会从第Q
个样本中抽取第一对列表元素。
到目前为止,我已经设法:
df1 <- data.frame(x=(1:3),Q=(3:5))
z <- 2
sapply(1:z,function(i) sample(df1$Q,1))
但我正努力在两个列表中的所有元素对中尝试mapply
。
答案 0 :(得分:5)
这是mapply
方法:
mapply(function(x, y) sample(x[["Q"]], y, replace = TRUE), list1, list2)
答案 1 :(得分: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]]))