微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 R 中的函数保存结果

如何解决使用 R 中的函数保存结果

我正在尝试运行我在 R 中创建的名为自相关的函数,我想在我保存在列表中的所有数据帧上运行它

这是我当前的代码

autocorrelation <- function(x,y){
  mean_x <- mean(x)
  Denominador <- (x[] - mean(x))^2 #Denominator 
  k=1; n=length(x)-k; u=1
  for (u in 1:n) {
    Numerador[u] <- (x[u] - mean_x)*(x[u+k] - mean_x) #Numerador
  }
  Lag1 <- ifelse(sum(Denominador)!=0,((1/(length(x)-1))*sum(Numerador))/((1/length(x))*sum(Denominador)),0) #Lag 1
  low <- (-1 - (1.96*sqrt(length(x)-2)))/(length(x)-1) #5% significance level
  up <- (-1 + (1.96*sqrt(length(x)-2)))/(length(x)-1) #5% significance level
  Significance <- ifelse( up <= Lag1 & Lag1 >= low,"Independent","No independent") #Significance
  Autocorrelation_results <- structure(list(Name=y,Lag1=Lag1,Low=low,Up=up,Significance=Significance)) #save the results
}

for (i in seq_along(listDF_Ann)){
  x<- listDF_Ann[[i]]$Qmean
  y <- names(listDF)[i]
  autocorrelation(x,y)
}
  

这是我的输入

> dput(listDF_Ann[[1]]$Qmean)
c(80.74,64.152602739726,68.7273224043716,132.860273972603,337.284931506849,78.3835616438356,204.416120218579,58.7824657534247,315.110684931507,146.238356164384,127.573770491803,286.835616438356,353.802739726027,88.3093150684931,304.866666666667,172.287123287671,90.4186301369863,51.1808219178082,131.634153005464,608.193150684932,49.1172602739726,257.268493150685,112.969945355191,50.0246575342466,275.166849315068,548.178082191781,405.07650273224,97.0849315068493,202.31095890411,452.841095890411,206.071038251366,518.246575342466,182.787945205479,309.183561643836,233.625683060109,83.5260273972603,51.4739726027397,340.13698630137,308.68306010929,616.715068493151,107.912328767123,342.956164383562,37.9808743169399,151.323287671233,231.164383561644,90.786301369863,38.0136612021858,185.421917808219,38.0167123287671,142.664109589041,114.443442622951,281.054246575342,92.0813698630137,96.5923287671233,289.146721311475,149.043287671233,251.462739726027,54.4093150684932,81.118306010929,168.744931506849,73.9879452054794,124.941917808219,151.301366120219,258.280547945205,29.5304109589041,263.763561643836,218.915027322404)

当前代码有效,但我不知道如何在运行该函数时为每个数据框 x 保存结果(结构?)。在我想导出所有 x 的结果之后。有什么想法吗?

解决方法

您可以使用 write.csv、dplyr 的 write_tsv(Autocorrelation_results,filename) 或类似的东西。

i 传递到循环中,因此您可以使用 paste

生成文件名
autocorrelation <- function(x,y,i){
    [...]
    filename <- paste0("outfile_",i,".tsv)
    write_tsv(Autocorrelation_results,filename)
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?