假设我们有 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。
不是完整的答案,但应该让你开始。如果我们有这个示例文件:
我们可以使用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列。