set.seed(3)
myvec <- rnorm(1000)

output <- vector("list", length = length(myvec))
for(i in 1:length(myvec)){
   output[[i]] <- floor(myvec[i])^2 + exp(myvec[i])^2/2
}

假设我有一个预先指定的数字向量,称为myvec.我想循环遍历每个元素,最终输出是一个列表.

使用for loop可能是非常低效的.同样,使用lapply也相当慢.

output <- lapply(1:length(myvec), function(i){
floor(myvec[i])^2 + exp(myvec[i])^2/2
})

有没有比这更快的替代方案?我在上面编的函数是一个玩具函数.实际上,我运行的函数比floor(myvec[i])^2 + exp(myvec[i])^2/2复杂得多,所以我正在寻找for looplapply的替代品.

推荐答案

下面是一个foreach个例子:

library(foreach)
library(doParallel)

registerDoParallel(cores = 6)
output <- foreach(x = myvec) %dopar% {floor(x)^2 + exp(x)^2/2}

R相关问答推荐

extract()函数不处理stanfit对象,我用错了吗?

如何使用行政边界形状文件中的人口普查数据调整格栅数据集中的人口数据

将R data.frame转换为json数组(源代码)

我可以截断10字节的扩展数并转换为8字节的double吗?

IQR()和stats之间四分位距计算的差异::分位数()在R和' ggpubr '

给定R中另一行中的值,如何插补缺失值

列出用m n个值替换来绘制n个数字的所有方法(i.o.w.:R中大小为n的集合的所有划分为m个不同子集)

r中的stat_difference函数不起作用

Highcharter多次钻取不起作用,使用不同方法

从R导出全局环境中的所有sf(numrames)对象

bslib::card_header中的shine::downloadButton,图标而不是文本

2个Rscript.exe可执行文件有什么区别?

如何通过匹配R中所有可能的组合来从宽到长旋转多个列?

函数可以跨多个列搜索多个字符串并创建二进制输出变量

如何使用For-R循环在向量中找到一系列数字

从数据创建数字的命名列表.R中的框

将统计检验添加到GGPUBR中的盒图,在R

如何筛选截止年份之前最后一个测量年度的所有观测值以及截止年份之后所有年份的所有观测值

R预测包如何处理ARIMA(Auto.arima函数)中的缺失值

当由base::限定时,`[.factor`引发NextMethod错误