Записать в файл, находясь в функции в R - PullRequest
0 голосов
/ 19 октября 2018

Я хочу записать данные в файл.это работает так:

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 и одну для записи файла, я получаю файл.

1 Ответ

0 голосов
/ 19 октября 2018

Я думаю, что эта функция работает отлично, но папка, в которую записывается файл, - это еще одна папка, которую вы ожидаете.

Попробуйте написать полный путь к файлу "file.csv" или загляните в свой файл.текущий рабочий каталог, который вы можете определить по getwd()

РЕДАКТИРОВАТЬ: вы можете попробовать с df <<- data.frame(x = sleutels, y = gaten) вместо <-?Кстати, какую версию R вы используете?У меня ошибка package ‘dict’ is not available (for R version 3.5.1), если предложенное решение не работает, попробуйте привести нам воспроизводимый пример.

...