【问题标题】:How to pick two particular columns from .xlsx file using 'readxl' package?如何使用“readxl”包从 .xlsx 文件中选择两个特定列?
【发布时间】:2020-02-13 11:06:22
【问题描述】:

我有一个包含 28 列的 .xlsx 文件。其中,我希望仅选择第 3 列(“销售人员”)和第 28 列(“客户 ID”)。 我尝试了两个代码,但它们似乎都不起作用。请告诉我我在这里做错了什么:

read_xlsx("Active List till 7 Feb .xlsx",sheet = "Raw data",col_names = c("Salesperson","Customer ID"))

read_xlsx("Active List till 7 Feb .xlsx",sheet = "Raw data",col_names = c(3,28))

使用第一个代码时出现以下错误

Error: Sheet 4 has 28 columns (28 unskipped), but `col_names` has length 2

在第二个代码中,我得到了从 3 到 28 的所有列,而不仅仅是 3 和 28。

我知道以后可以使用select() 选择特定列,但我想知道如何将其直接指定到read_xlsx() 函数中。如果有更好的方法来实现这一点,请告诉我。

谢谢!

【问题讨论】:

标签: r readxl


【解决方案1】:

您可以使用以下代码

Sys.setenv(JAVA_HOME="C:\\Program Files\\Java\\jdk1.8.0_201")
library(xlsx)
read.xlsx("Active List till 7 Feb .xlsx", sheetName = "Raw data", colIndex = c(3,28))

使用openxlsx包的解决方案

library(openxlsx)
read.xlsx("Active List till 7 Feb .xlsx", sheet = "Raw data", cols = c(3,28))

【讨论】:

  • 我试图找到一种方法,如何使用 read_xlsx 包中的 read_xlsx 函数实现这一目标
  • 恐怕readxl 包是可能的。使用readxl 是否绝对有必要这样做?
  • 不,实际上我想知道我在代码中做错了什么。即使我在read_xlsx() 之后使用select(),我也能完成工作。感谢您的帮助
  • read_xlsx() 无法从它的帮助中得到什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-20
  • 1970-01-01
  • 2021-01-21
  • 2018-03-26
  • 2020-01-01
  • 1970-01-01
相关资源
最近更新 更多