【发布时间】:2012-01-04 20:36:58
【问题描述】:
假设我有一个创建数据框的函数。我想用不同的输入值运行该函数,然后将结果合并到一个大数据框中,如下所示:
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 正在返回一个列表矩阵。我期待它返回一个数据框列表。我应该怎么做?
【问题讨论】: