首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中使用函数保存结果

在R中使用函数保存结果
EN

Stack Overflow用户
提问于 2021-04-20 16:47:04
回答 1查看 39关注 0票数 1

我正在尝试运行我在R中创建的名为自相关的函数,并希望对保存在列表中的所有数据框运行该函数

这是我当前的代码

代码语言:javascript
复制
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)
}

这是我的输入

代码语言:javascript
复制
> 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的结果之后。你知道吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-20 16:57:05

你可以使用write.csv,dplyr的write_tsv(Autocorrelation_results, filename),或者其他类似的东西。

i传递到循环中,这样就可以用paste生成一个文件名

代码语言:javascript
复制
autocorrelation <- function(x,y,i){
    [...]
    filename <- paste0("outfile_", i, ".tsv)
    write_tsv(Autocorrelation_results, filename)
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67175510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档