写入数据帧,然后写入R中的.csv文件

写入数据帧,然后写入R中的.csv文件,r,export-to-csv,write.table,R,Export To Csv,Write.table,我希望将下面R代码的输出写入.csv文件 N <- c(15L, 20L) SD <- c(1, 2) ^ 2 phi = c(0.2, 0.4) ## generate all combos all_combos <- expand.grid(N = N, SD = SD, phi = phi) ## create function fx_arima <- function(n, SD, phi) { (arima.sim(n = n,

我希望将下面
R
代码的输出写入
.csv
文件

N <- c(15L, 20L)
SD <- c(1, 2) ^ 2
phi = c(0.2, 0.4)

## generate all combos
all_combos <- expand.grid(N = N, SD = SD, phi = phi)

## create function
fx_arima <- function(n, SD, phi) {
  (arima.sim(n = n,
            model=list(ar=phi, order = c(1, 1, 0)),
            start.innov = 4.1,
            n.start = 1,
            rand.gen = function(n) rnorm(n, mean = 0, sd = SD)))[-1]
}

## find arima for all combos using Map
Map(fx_arima, all_combos[["N"]], all_combos[["SD"]], all_combos[["phi"]])

## or :
set.seed(123L)
by(all_combos, all_combos["N"], 
   function(DF) {
     res = mapply(fx_arima, DF[["N"]], DF[["SD"]], DF[["phi"]])
     colnames(res) = paste("SD", DF[["SD"]], "phi", DF[["phi"]], sep = "_")
     res
   })

我尝试了在中完成的操作,但无法获得它

我们可以先将结果保存到列表中,
final.result

final.result <- by(all_combos, all_combos["N"], 
   function(DF) {
     res = mapply(fx_arima, DF[["N"]], DF[["SD"]], DF[["phi"]])
     colnames(res) = paste("SD", DF[["SD"]], "phi", DF[["phi"]], sep = "_")
     res
   })

警告消息:1:在write.table中(final.result[[i]],sep=“,”,file=“~/test.csv”,:在文件中追加列名2:在write.table中(final.result[[i]],sep=“,”,file=“~/test.csv”,:在文件中追加列名
sapply(名称(final.result),函数(nm)write.csv(final.result[[nm]],file=paste0(nm,.csv),row.names=FALSE,quote=FALSE)
帮助我认为
sapply
解决方案更好,如果您没有调用
final.result
一个名称,我就不会达到这个目的。请采纳这个名称,让我给您评分,因为我已经使用了一天。我非常抱歉地告诉您,警告仍然存在,即使在您您的更新。
Map(fx_arima,all_combos[[“N”]],all_combos[[“SD”]],all_combos[[“phi”]])
返回一个长度为8的列表。您希望如何在csv中写入它?每个列表在不同的csv中有一列?还是一个组合的csv?
final.result <- by(all_combos, all_combos["N"], 
   function(DF) {
     res = mapply(fx_arima, DF[["N"]], DF[["SD"]], DF[["phi"]])
     colnames(res) = paste("SD", DF[["SD"]], "phi", DF[["phi"]], sep = "_")
     res
   })
for(i in seq_along(final.result)){
  group <- names(finalresult)[i]
  colnames(final.result[[i]]) <- paste0("N_",group,"_",colnames(final.result[[i]]))
  write.table(final.result[[i]],sep=",",file="test.csv",append = TRUE)
}