L1 <- list(A = c(1, 2, 3), B = c(5, 6, 7))
L2 <- list(A = c(11, 22, 33), B = c(15, 16, 17))
L3 <- list(L1, L2)
L3
library(data.table)
rbindlist做的正是我需要的,但'do.call'做不到!
rbindlist(L3)
do.Call不是我想要的
do.call(rbind, L3)
identical(rbindlist(L3), do.call(rbind, L3))
我认为每次调用as.data.frame
可能代价很高。怎么样?
as.data.frame(do.call(mapply, c(L3, FUN=c, SIMPLIFY=FALSE)))
mapply
基本上采用L3的第一个元素,并应用函数fun
,然后应用第二个元素,依此类推...假设您有两个列表(L3[[1]]
和L3[[2]]
),那么您可以这样做:
mapply(FUN=c, L3[[1]], L3[[2]], SIMPLIFY=FALSE)
这里simplify=false
确保输出不被转换(或简化)为矩阵。因此它将是一个列表。对于一般情况,我们使用do.call
并将列表与函数mapply
的所有其他参数一起传递。希望这有帮助。
ll <- unlist(replicate(1e3, L3, simplify=FALSE), rec=FALSE)
aa <- function() as.data.frame(do.call(mapply, c(ll, FUN=c, SIMPLIFY=FALSE)))
bb <- function() do.call(rbind, lapply(ll, as.data.frame))
require(microbenchmark)
microbenchmark(o1 <- aa(), o2 <- bb(), times=10)
Unit: milliseconds
expr min lq median uq max neval
o1 <- aa() 4.356838 4.931118 5.462995 7.623445 20.5797 10
o2 <- bb() 673.773795 683.754535 701.557972 710.535860 724.2267 10
identical(o1, o2) # [1] TRUE
问题内容: 我需要使用JavaScript根据下拉菜单A中的选择更改下拉菜单B的内容。没有涉及到数据库查询- 我事先知道应该在A中选择B的内容。我已经找到了一些使用AJAX的示例,但是由于没有涉及到数据库查询,所以没有必要。谁能为我指出一些示例代码以实现此目的? 问题答案: function configureDropDownLists(ddl1, ddl2) {
问题内容: 在Python中,我可以找到连接两个列表的唯一方法是,它会修改第一个列表。是否有任何串联函数返回其结果而不修改其参数? 问题答案: 是:。这给出了一个新的列表是的串联和。
我的代码如下: WebElement stateDropDown=驱动程序。findElement(By.xpath(“/html/body/form/div[3]/main/div/div/div/span/div/fieldset/div[4]/div[1]/span/span[1]”);列表选项=状态下拉列表。findElements(By.xpath(“/html/body/div[1]/
我试图让发送消息给另一方的用户和接收消息的用户在每行的一行中。 那么oracle sql查询应该是什么呢
问题内容: 我有 我想要 问题答案:
问题内容: 我有两个清单: 我想将这两个列表合并成一个字典,例如: 一个解决方案可能是使用循环,看起来不太美观,例如: 尽管此方法确实有效,但效率很低,并且当列表很大时会花费太多时间。我想知道构造这种字典的更优雅的方法吗? 提前致谢! 问题答案: 您可以使用defaultdict: 输出: