首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >openxlsx编写从R到excel的if公式

openxlsx编写从R到excel的if公式
EN

Stack Overflow用户
提问于 2017-11-21 09:26:50
回答 1查看 3.5K关注 0票数 6

我试图从R导出一个包含两个列的数据格式,我想用excel if公式填充这些列,这样用户以后就可以更改阈值了。我的问题是如何将类似于下面的IF(C2>4;“是”;“否”)的公式导出到excel中新列的每个单元格中。

R代码:

代码语言:javascript
复制
library(openxlsx)
library(dplyr)
export_df<-   mtcars %>% tibble::rownames_to_column(var="carname")

# Formulas in EXCEL IF(C>4; "YES";"NO") IF(E>100; "YES";"NO") 

export_df$many_cyl <- paste(paste(paste0(paste0("IF(C" ,seq(2,nrow(export_df)+1 ,1))," > 4")," 'Yes' ", sep=";")," 'No') ", sep=";")

export_df$fast_car <-  paste(paste(paste0(paste0("IF(E" ,seq(2,nrow(export_df)+1,1))," > 100")," 'Yes' ", sep=";")," 'No')", sep=";")

class(export_df$many_cyl) <- c(class(export_df$many_cyl), "formula")
class(export_df$fast_Car) <- c(class(export_df$fast_car), "formula")

openxlsx::addWorksheet(wb,sheetName ="mtcars" )
openxlsx::writeData(wb,"mtcars",export_df )
openxlsx::saveWorkbook(wb, "mtcars.xlsx")

我尝试创建excel公式的方式不起作用。在我声明列为公式的步骤中,脚本将失败。创建独立向量并将其导出到工作簿的第二种方法也不起作用。

我怎么才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-21 09:58:32

您的Excel公式错了。你需要双引号表示“是”和“否”,也需要逗号来分隔你的论点,而不是分号。尝试以下几点:

代码语言:javascript
复制
export_df$many_cyl <- paste(paste(paste0(paste0('=IF(C' ,seq(2,nrow(export_df)+1 ,1)),
                            ' > 4'),' "Yes" ', sep=','),' "No") ', sep=',')

export_df$fast_car <-  paste(paste(paste0(paste0('=IF(E' ,seq(2,nrow(export_df)+1,1)),
                             ' > 100'),' "Yes" ', sep=','),' "No")', sep=',')


wb <- createWorkbook()
addWorksheet(wb, "Sheet 1")
writeFormula(wb, sheet = "Sheet 1", x = export_df$many_cyl, startCol = 2, startRow = 1)
saveWorkbook(wb, "writeFormulaExample.xlsx", overwrite = TRUE)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47409512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档