如何在R中读取带有空标签的excel文件?

时间:2016-03-12 07:15:14

标签: r excel

我在R中导入一个excel文件。它的一些标签是空的。 R没有阅读这些标签。它给了我一个错误:跳过所有数据。

library(readxl)
sheetnames = excel_sheets("Saudi Diapers.xlsx")
k = length(sheetnames)
i=1

for(i in 1:k) {

  abc = read_excel("Saudi Diapers.xlsx",i`,col_names = T)

  rownames(abc) = NULL

  tabname = paste(sheetnames[i], ".csv")

  write.csv(file=paste("Saudi Diapers",tabname,sep = "_"), x= abc, row.names = F,na="",sep = "")

}

1 个答案:

答案 0 :(得分:1)

你可以用两种方式做到这一点:
1.改变函数read_excel,使其不会产生错误,但会返回一个空的数据框 2.使用tryCatch捕获错误并返回空数据帧。 我在这里选择了第二个选项。 tryCatch函数本质上尝试执行表达式(在本例中为read_excel(...)),如果生成错误,则返回错误条件中的函数(在本例中为data.frame(NULL))。

library(readxl)

我制作了一张excel表,里面有一张纸和两张空纸     filename< - " test_blanksheet.xlsx" #Put your own filename

sheetnames = excel_sheets(filename)

for(i in 1:length(sheetnames)) {

  tempdf = tryCatch(read_excel(filename,i,col_names = T), 
                 error = function(err) { data.frame(NULL)})

  write.csv(file=paste0("Saudi_Diapers_",sheetnames[i],".csv"), x= tempdf,
  row.names = F,na="")
      }

它有效:

  
    

list.files()
    [1]" Saudi_Diapers_Data2.csv" " Saudi_Diapers_Empty1.csv"
    [3]" Saudi_Diapers_Empty3.csv" " test_blanksheet.xlsx"