我一直在尝试写一个代码,将使用import_list(rio包)读取.xls文件中选定的工作表,然后rbinding并将其转换为.csv文件。到目前为止,我已经能够使代码读取xls文件中的所有工作表在同一时间,连续工作表(如1:4),但不是根据其名称选定的工作表。请帮助。我已经附上了我的代码和我的数据的一部分,我的当前迭代。
library(rio)
d <- import_list("allTP.xls", which = (("201901,Xizhi,PM10")), setclass="data.table",range = "A2:Y33", rbind = T, col_names=T, rbind_label = "_file", rbind_fill = TRUE)
1条答案
按热度按时间gudnpqoy1#
which
参数必须是工作表名称的向量。也就是说,它需要使用c
函数采用以下格式:或要导入的任何图纸。
which
参数似乎不支持正则表达式,因此无法使用通配符导入工作表。但您可以导入所有工作表,然后使用_file
列选择要单独导出的数据(如果您知道哪个工作表编号是哪个,因为工作表名称不保存,只有编号)。在数据中,所有信息都在第一行,但由于指定范围为“A2:Y33”,因此不导入此信息。如果选择“A1:Y33”,则所有列都将获得“字符”,但由于列名从第2行开始,因此您不希望这样。
一个解决方案是导入所有工作表,range=“A2:Y33”,就像您之前所做的那样,然后对范围“A1:Y2”重复此操作,将结果另存为
d2
。此范围包含您需要选择的信息。然后,您可以在_file
上合并d
和d2
,并根据d2
中的信息导出单个csv文件。对于
d2
,我们只导入范围“A1:Y1”,然后导入列1、7、13和26的子集,并适当地设置名称。然后合并
_file
列上的两个数据集。检查数据。
一共有8张表,每张表包含31条记录,但是我们必须清除这些名字,因为如果我们用这些名字作为文件名,R会抱怨的。
现在我们来分析这三个语境变量的相互作用
并保存为单独的CSV文件。
然后,您可以轻松地选择使用
f
或d3
的子集仅导出所需的数据。