在R中从Excel文件中加载所有工作表中的特定列

11 浏览
0 Comments

在R中从Excel文件中加载所有工作表中的特定列

我试图使用这里的方法论文档来加载Excel文档中的所有工作表:将Excel工作簿中的所有工作表加载到R列表中的数据框中。然而,问题在于我只想加载这些工作表中的特定列,而不是加载所有内容并对我想要的列进行子集化。我尝试了以下方法:\n库(readxl)\nread_excel_allsheets<-function(filename){\n sheets<-readxl::excel_sheets(filename)\n x<-lapply(sheets, function(X) readxl::read_excel(filename, \n sheet=X, \n range = cell_cols(c(\"A\", \"B\", \"C\"))))\n names(x)<-sheets\n x\n}\ndat<-read_excel_allsheets(myexcelsheet.xlsx)\n这个脚本可以工作,但它仍然读取了所有列。命名的列在每个工作表中都存在且位置相同。有什么想法吗?谢谢!

0
0 Comments

问题的原因是想要从Excel文件中的所有工作表中加载特定的列,但是默认情况下列的类型可能与预期不符。解决方法是使用read_excel函数的col_type参数,将需要加载的列的类型设置为"blank",这样可以加载特定的列。

下面是解决该问题的具体步骤:

步骤1:在R中加载xlsx库,以便进行Excel文件的读写操作。

library(xlsx)

步骤2:使用write.xlsx函数将数据保存为Excel文件。请注意,需要根据实际文件路径修改代码中的文件路径。

write.xlsx(mtcars, "C:/Users/matthewr/Desktop/New folder/mtcars.xlsx")

步骤3:加载readxl库,以便在R中读取Excel文件。

library(readxl)

步骤4:使用read_excel函数读取Excel文件的第一个工作表,并将结果保存在变量a中。请注意,需要根据实际文件路径修改代码中的文件路径。

a <- read_excel("C:/Users/matthewr/Desktop/New folder/mtcars.xlsx", sheet = 1)

步骤5:使用read_excel函数读取Excel文件的第一个工作表,并将特定的列的类型设置为"blank"。在这个例子中,我们加载了两列。请注意,需要根据实际文件路径修改代码中的文件路径。

b <- read_excel("C:/Users/matthewr/Desktop/New folder/mtcars.xlsx", sheet = 1, col_type = c("text", "numeric", rep("blank", 10)))

步骤6:使用names函数获取变量a和b的列数,并输出结果。

length(names(a))

length(names(b))

通过上述步骤,我们可以从Excel文件中加载特定的列,并确保列的类型符合预期。

0