2017-03-06 38 views
1

我試圖讀成R的Excel使用多個值NA片(具體地,「N/A」和「N/A」)。如果我試着給NA =字符串列表,它拋出一個錯誤:使用read_excel(na =)如何指定多個NA字符串?

read_excel(path = "file.xlsx", 
      na = "N/A") #This works just fine 

read_excel(path = "file.xlsx", 
      na = c("N/A", "n/a")) 

Error in eval(substitute(expr), envir, enclos) : expecting a single value 

如何與兩個字符串轉換爲NA讀這在任何想法?還是我最好做一次查找/替換數據是在R?

+1

根據['readxl /問題/ 272'(HTTPS: //github.com/tidyverse/readxl/issues/272),github版本支持「multiple-'na' values」。 (我還沒有測試過。) – r2evans

+0

感謝r2evans,GitHub的版本是爲繼續幫助偉大的工作,現在 – Watanake

回答

1

正如你雲集,read_excel不接受多個值。考慮使用gdata::read.xls

gdata::read.xls("file.xlsx", na.strings = c("N/A", "n/a")) 

編輯請注意,你需要有Perl安裝到運行此。如果你在windows上,你可能需要在read.xls的調用中指定類似perl="C:/Perl/bin/perl.exe"

編輯2作爲@ r2evans的意見提出的readxl開發版本支持多種NA值:

devtools::install_github("tidyverse/readxl") 
readxl::read_excel(path = "file.xlsx", na = c("N/A", "n/a")) 
+0

謝謝,我只花了一段時間安裝Perl,設置路徑和運行installXLSXsupport(),仍然給我一個空數據幀。但是,如果這個github版本的工作,這將是我想要的更多,現在下載。謝謝! – Watanake

+0

這工作完美。採取了一些安裝包(沒有Rtools),然後我不得不手動刪除粗能力需求計劃,因爲舊版本擋住安裝(這個答案幫助:http://stackoverflow.com/questions/26570912/error-in - 安裝-AR-封裝)。但是現在read_excel正在做我需要的一切,再次感謝! – Watanake