假设我有一个创建数据框的函数。我想使用不同的输入值运行该函数,然后将结果合并成一个大的数据框,如下所示:
CreateDataFrame <- function(type="A", n=10, n.true=8) {
data.frame(success=c(rep(TRUE, n.true), rep(FALSE, n - n.true)), type=type)
}
df <- do.call(rbind, lapply(toupper(letters[1:5]), CreateDataFrame))
我的CreateDataFrame函数有三个参数。在上面的例子中,第二个和第三个参数是固定的。我想做与上面相同的事情,但希望在每次调用时更改第二个和第三个参数。我认为我必须使用mapply,像这样:
mapply("CreateDataFrame", type=toupper(letters[1:5]), n=10, n.true=8:4)
我遇到了问题,因为mapply没有返回列表,这使我无法运行 do.call(rbind, mapply(...))
。我该如何得到一个单一的数据框,就像在顶部的例子中一样?
看起来mapply返回了一个列表的矩阵。我原本期望它返回一个数据帧的列表。我应该怎么做才能不同呢?