来自data.frames列表的示例

时间:2012-12-11 17:32:49

标签: r list

我有以下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随机抽样

所以我会从第Q个样本中抽取第一对列表元素。

到目前为止,我已经设法:

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

但我正努力在两个列表中的所有元素对中尝试mapply

2 个答案:

答案 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]]))