2015-06-16 38 views
3

我使用read_excelreadxl包读取一个文件,其中我想强制为文本的3列,其余我很高兴让read_excel猜测类型。我可以这样做吗?设置read_excel猜测某些列类型

我尝试使用col_type设置我想成为text列,其余如blank,但是这导致blank列被跳过。我尝试使用NA而不是blank,但是强制列全部为text,而read_excel否则会读取一些数字。

我的代码是

col_filter <- rep('blank', 14) 
col_filter[1, 3, 7] <- 'text' 
read_excel(file, sheet, col_type=col_filter) 

14是在Excel文件中的列数,1 3 7我想读的文本列。如果我可以在不事先知道列的数量的情况下做到这一点,则可以获得额外的奖励(首先只需检查列数就可以读取文件)。

+1

为什么不'col_filter <开始 - 代表( '数字',14)'? –

+0

因为列中还有一些'日期'? – Ricky

+0

data.table pkg中的'fread'函数具有类型的猜测逻辑。 –

回答

2

您可以使用此:

col_filter <- readxl:::xlsx_col_types(path = file, n = 100,nskip = 1) 
col_filter[1, 3, 7] <- 'text' 
read_excel(file, sheet, col_type=col_filter)