gpt4 book ai didi

运行外部 R 脚本 n 次并将输出保存在数据框中

转载 作者:行者123 更新时间:2023-12-02 09:34:20 26 4
gpt4 key购买 nike

我有一个数百行的 R 脚本,其中包括几个随机化函数。每次运行它时我都会得到不同的结果。

我正在考虑对我的模型进行敏感性分析,并且我有兴趣运行我的脚本数百次并比较结果。

经过一番研究,我发现 lapplyknitr 的组合可能是一个可能的解决方案:

result <- c("B:/Documents/result.R")
resultsList <- lapply(1:100, function(n) knit(input=result, NULL))

不幸的是,这不起作用。谁能解释一下为什么?

非常感谢!

更新

脚本看起来像这样:

#Records
dataID = c(01, 03, 05)
localityNumber = c(2000, 4000, 5000)
records = data.frame(dataID, localityNumber)

#Locality number / Postcode conversion table
localityNumber = c(2000, 2000, 2000, 4000, 5000)
postCode = c(6766, 6767, 6768, 7041, 8046)
allocationTable = data.frame(localityNumber,postCode)

rm(dataID, localityNumber, postCode)

#Create random postcode id
count <- aggregate(allocationTable, by=list(allocationTable$localityNumber), FUN=length)
names(count) <- c("localityNumber", "count", "count.2")
allocationTable <- join(x=allocationTable, y=count)

#Test with for localityNumber with three postcodes
allocationThree <- allocationTable[which (allocationTable$count == "3"),]
testThree <- nrow(allocationThree) / 3
repThree <- rep(1:3, testThree)
allocationThree$id <- repThree
allocationThree$count <- allocationThree$count.2 <- NULL
rm(count, rep, testThree)

records$id <- repThree

#Randomly allocate
records <- join(records, allocationThree)

我想多次重复此脚本并将 records data.frame 的值存储在列表中。

最佳答案

尝试添加记录添加脚本末尾,以便它输出记录数据帧。

然后您可以运行:

result_list<-lapply(1:100, function(n)source("your_script.R"))

如果您想rbind所有数据帧,您可以这样做:

do.call(cbind,lapply(result_list,function(x) x$value))

关于运行外部 R 脚本 n 次并将输出保存在数据框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28792801/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com