首页 > 解决方案 > 如何在 R 中列出多个计算的结果

问题描述

我已经加载了两个源文件,执行了一些迭代计算,然后我需要显示/导出结果。有数百次迭代计算,因此有数百个结果。但是,只显示最终计算的结果。

在这个例子中,我将计算列表缩短到只有 3 个。请参考第 7 行(k in 1:3)。如何让 R 显示所有计算的结果?

非常感谢那些可以提供帮助的人。如果之前已经问过这个问题,那么链接会很棒。我找不到这可能是因为我不知道要搜索的正确术语。

# Load files
d1<-read.csv('testhourly.csv',sep=",",header=F)
names(d1)<-c("elapsedtime","units")
d2<-read.csv('testevent.csv',sep=",",header=F)
names(d2)<-c("eventno","starttime","endtime","starttemp","endtemp")

# Perform for calculations 1 to 3
for(k in 1:3){
a<-d2[k,2]
b<-d2[k,3]
x<-d1[a:b,]$q
a2<-d2[k,2]-1
b2<-d2[k,3]-1
y<-d1[a2:b2,]$q

z <- (x-y)}
results <- sum(z)

# Export results
write.csv(results, file = "results.csv")

标签: r

解决方案


您不会在每次迭代的循环中保存输出,因此您的循环仅返回最后一次迭代的最终值。

temp=vector("list",3)

for(k in 1:3) {
        a<-d2[k,2]
        b<-d2[k,3]
        x<-d1[a:b,]$q
        a2<-d2[k,2]-1
        b2<-d2[k,3]-1
        y<-d1[a2:b2,]$q

        temp[[k]] <- (x-y)
    }

results <- sum(unlist(temp))

推荐阅读