R write.csv正在创建一个空文件

时间:2017-11-21 19:40:06

标签: r csv export-to-csv data-cleaning

我的问题的一些背景:这是以前的研究助理写的R剧本,但他没有为我自己使用它提供任何指导。在完成R教科书后,我尝试在我的数据文件上使用代码。

这段代码应该做的是加载多个.csv文件,从中删除某些项目/列,然后将新清理的.csv文件写入指定目录。

目前,正确的目录中使用正确的文件名创建文件,但正在创建的.csv文件为空。

我目前收到以下错误消息:

  

警告   fread(input = paste0(“data /”,str_match(pattern =“CAFAS | PECFAS”,:在第2行开始数据输入并丢弃第1行,因为它有太少或太多的项目不是列名或数据:(变量)名字)。

这是我的代码:

library(data.table)
library(magrittr)
library(stringr)

# create a function to delete unnecessary variables from a CAFAS or PECFAS 
data set and save the reduced copy

del.items <- function(file){  
  data <- fread(input = paste0("data/", str_match(pattern = "CAFAS|PECFAS", 
string = file) %>% tolower, "/raw/", file), sep = ",", header = TRUE, 
na.strings = "", stringsAsFactors = FALSE, skip = 0, colClasses = 
"character", data.table = FALSE)

   data <- data[-grep(pattern = "^(CA|PEC)FAS_E[0-9]+(TR?(Initial|[0-
 9]+|Exit)|SP[a-z])_(G|S|Item)[0-9]+$", x = names(data))]

  write.csv(data, file = paste0("data/", str_match(pattern = "CAFAS|PECFAS", 
string = file) %>% tolower, "/items-del/", sub(pattern = "ExportData_", x = 
file, replacement = "")) %>% tolower, row.names = FALSE)
}

# delete items from all cafas data sets

cafas.files <- list.files("data/cafas/raw", pattern = ".csv")

for (file in cafas.files){
  del.items(file)
}

# delete items from all pecfas data sets

pecfas.files <- list.files("data/pecfas/raw", pattern = ".csv")

for (file in pecfas.files){
  del.items(file)
}

0 个答案:

没有答案