1

假设我们有 excel 文件,在A1中有 formula = 1+1+1。所以 excel 显示 3 但是您可以执行“文本到列”,值 1 将位于A1、B1 和 C1中。

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

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

4

1 回答 1

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列。

于 2018-04-03T12:27:28.330 回答