【问题标题】:Write to a file, while in a function in R写入文件,同时在 R 中的函数中
【发布时间】:2018-10-19 12:06:25
【问题描述】:

我想将数据框写入文件。 它的工作原理是这样的:

df <- data.frame(x = xalues, y = yalues)
write.csv(df, 'file.csv')

但是当我把它放在一个函数中时它不起作用:

writing<-function(df){
write.csv(df, 'file.csv')
}
df <- data.frame(x = xalues, y = yalues)
writing(df)

这是我的全部功能:

gccount <- function(bestand){  
  library(dict)
  library(stringr)
  bieb<-dict()
  for (i in bestand){
    for (j in i){
      titel<-grepl(">Rosalind",j)
      if (titel==TRUE){
        bieb[[j]]<-""
        bewaar<-j
      }
      else if (titel==FALSE){
        vorige<-bieb[[bewaar]]
        if (vorige==""){
          bieb[[bewaar]]<-j
        }
        else if (vorige!=""){
          bieb[[bewaar]]<-paste(vorige,j,sep = "")
        }
      }
    }
  }
  bieb$items()
  gccbieb<-dict()
  for (naam in bieb$keys()){
    waarde<-bieb[[naam]]
    g<-str_count(waarde,"G")
    c<-str_count(waarde,"C")
    gcc<-100/nchar(waarde)*(g+c)
    gccbieb[[naam]]<-gcc
  }


  keys<-gccbieb$keys()
  values<-gccbieb$values()
  sleutels<-c()
  gaten<-c()
  for (key in keys){
    sleutels<-c(sleutels, key)
  }
  for (value in values){
    gaten<-c(gaten, value)
  }

  df <- data.frame(x = sleutels, y = gaten)
  write.csv(df, 'gc.csv')
}
bestand<-read.csv('Rosalind.csv', header = FALSE, sep = ".")
gccount(bestand)

我没有得到一个文件,但是当我把它分成两个不同的函数时,一个用来制作字典 gccbieb,一个用来写一个文件,我得到了一个文件。

【问题讨论】:

  • 你得到什么错误信息?
  • 我没有收到错误消息,它只是不会写入文件,我尝试重新启动 Rstudio 等,但这也无济于事

标签: r function file file-handling writing


【解决方案1】:

我认为此功能运行良好,但它写入文件的文件夹是您所期望的另一个文件夹。

尝试写入“file.csv”的完整路径或查看您可以通过getwd()识别的当前工作目录

编辑:您可以尝试使用 df &lt;&lt;- data.frame(x = sleutels, y = gaten) 而不是 &lt;- 吗? 顺便问一下,您使用的是哪个版本的 R?我有错误package ‘dict’ is not available (for R version 3.5.1),如果提出的解决方案不起作用,请尝试给我们一个可重现的示例。

【讨论】:

  • 我尝试了这两个选项,但它仍然只在文件不在函数中时写入文件
  • 尝试将getwd() 添加到您的函数中,这样它会显示文件写入的位置。
猜你喜欢
  • 2014-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-16
  • 2021-09-28
  • 1970-01-01
  • 2020-05-02
相关资源
最近更新 更多