使用R软件包xlsx,是否可以在读取Excel文件时设置na.strings?

我正在使用read.xlsx在Excel文件中read.xlsx ,我想用read.table来设置na.strings。 这可能吗? 这只是添加na.strings到这样的调用不起作用:

 Data <- read.xlsx("my file.xlsx", sheetName = "MyData", na.strings = "no info") 

还有其他的方法吗?

不,这是不可能的,因为read.xlsx没有处理特殊的缺失值。 但是这可能是getCellvalue函数的一个可能的增强。

你可以使用类似的东西replace缺失的值:

  Data[Data=="no info"] <- NA 

或者,将您的数据转换为csv并使用read.csv ,或作为注释使用另一个处理缺失值的包。

编辑使用XLConnect包:

更高性能的XLConnect包使用setMissingValue函数来setMissingValue缺失的值。 这里等价的代码可以写成:

 library("XLConnect") wb <- loadWorkbook("my file.xlsx") setMissingValue(wb, value = "no info") readWorksheet(wb, sheet = "MyData") 

我不认为这是可能的,但你可以很容易地使用应用程序来做到这一点后,你已经加载了Excel文件:

 Data <- data.frame(apply(Data,1:2,function(x) if( x %in% 'no info') return(NA) else return(x))) 

显然,如果没有信息,你可以拥有自己的na.strings向量

希望有所帮助!