R - 从XLSX读取特定列

时间:2017-12-31 04:44:44

标签: r excel

这似乎是一个愚蠢的问题,但我真的找不到解决方案!我只需要从Excel文件中读取特定列。 该文件有多个不同列数的工作表,但我需要阅读的那些。我可以为csv文件执行此操作,但不能用于excel!这是我现在的代码,它读取前14列(但我需要的列可能并不总是在前14列)。我不能只读取它们,因为def save(self, *args, **kwargs): mylist = ['up', 'down', 'strange', 'charm',....] if slef.kind in mylist: super(Foo, self).save(*args, **kwargs) else: raise Exception, "kind take only one of the following values: up, down, strange, charm,...." 会引发错误,引用行不匹配(表单中的行数不同)。

编辑:我通过省略rbind参数解决了这个问题,它作为具有不同列号的工作表只有列标题。不过,这绝不是一个强有力的解决方案,所以我希望有人能比我做得更好。

col_types

我正在尝试做这样的事情:

INV <- lapply(sheets, function(X) read_excel("./Inventory.xlsx", sheet = X, col_types = c(rep("text", 14))))
names(INV) <- sheets
INV <- do.call("rbind", INV)

但是,对于Excel文件。我尝试使用INV <- lapply(FILES[grepl("Inventory", FILES)], function(n) read_csv(file=paste0(n), col_types=cols_only(DIVISION="c", DEPARTMENT="i", ITEM_ID="c", DESCRIPTION="c", UNIT_QTY="i", COMP_UNIT_QTY="i", REGION="c", LOCATION_TYPE="c", ZONE="c", LOCATION_ID="c", ATS_IND="c", CONTAINER_ID="c", STATUS="c", TROUBLE_CODES="c"))) 中的read.xlsxopenxlsx中的read_excel,但不支持这样做。必须有其他方式。不要担心列类型,我对所有字符都很好。

如果可以使用readxlreadxl完成此操作,我将非常感谢。

0 个答案:

没有答案