【问题标题】:Data import and text to column (when in excel A1 = 1+1+1 and 3 is visible)数据导入和文本到列(在 excel A1 = 1+1+1 和 3 中可见时)
【发布时间】:2018-09-12 16:35:15
【问题描述】:

假设我们有一个 excel 文件,在 A1 中有公式 = 1+1+1。所以 excel 显示 3 但是您可以执行 'Text to Columns' 并且值 1 将在 A1、B1 和 C1 中。

数据导入后我们可以在 R 中做些什么(我使用 read.xlsx)以获得相同的结果(1、1、1 与 3 相反)?

确认一下,原来的 df 是 1x1,值为 3,而期望的结果是 df 1x3,所有 3 个单元格中都是 1。

【问题讨论】:

  • 你用的是什么 R 包?
  • 我使用 read.xlsx

标签: r r-xlsx


【解决方案1】:

不是完整的答案,但应该可以帮助您入门。如果我们有这个示例文件:

我们可以使用openxlsx包获取公式:

library(openxlsx)

# read as workbook object
wb <- loadWorkbook("test.xlsx")

# get the 1st sheet
sheet1 <- wb$worksheets[[1]]

# get the cell formulas
sheet1$sheet_data$f
# [1] NA             "<f>1+1+1</f>" NA

这里,我们可以看到公式,sheet1$sheet_data$f中的第二项。意思是第一列第二行。剩下的工作就是将其解析为 data.frame 列。

【讨论】:

  • 解析成df没问题。再次感谢。如果可能的话,现在我还有另一个问题。如何使用公式在 B、C 列中进行操作...我找不到任何方法来导入一列。
  • @Kalenji 同样的方法,有一个索引变量显示哪个公式属于哪个单元格。花点时间了解 sheet1 对象的结构。如果您的问题更复杂/更具体,请使用示例 Excel 文件和预期输出提出新问题。
  • 我试过了,但是多于一列会导致我的大文件出现错误。如果可能,请查看link
猜你喜欢
  • 2019-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-10
  • 1970-01-01
  • 2022-11-13
  • 2023-03-30
  • 2010-12-02
相关资源
最近更新 更多