假设我有一个创建数据框的函数。我想用不同的输入值运行该函数,然后将结果合并到一个大数据框中,如下所示:
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 正在返回一个列表矩阵。我期待它返回一个数据框列表。我应该怎么做?