如何在R中编写Echarts4r绘图函数并解决列不存在报错
问题修复方案
你的报错由两个问题共同导致:
- 函数内部误用了未定义的
base对象,你声明的传入数据集的形参为dataframe,但绘图流程中调用了不存在的base变量,自然无法匹配到对应列 - echarts4r的绘图函数采用tidyverse风格的非标准求值逻辑,自定义函数内传递列名参数时,需要用双大括号
{{ }}包裹参数,否则函数无法识别你传入的var1、var2是数据框内部的列
修正后可运行的完整代码
library(echarts4r) graf_func <- function(dataframe, vary, varx){ grafico <- dataframe |> e_charts({{ vary }}) |> e_bar({{ varx }}) |> e_tooltip(trigger = "axis") return(grafico) } df <- data.frame( var1 = runif(10, min = 100, max = 200), var2 = runif(10, min = 10, max = 200) ) # 调用测试 graf_func(dataframe = df, vary = var1, varx = var2)
可选扩展:支持字符串形式传列名
如果你需要传入字符串格式的列名(比如vary = "var1"),可以改用.data[[参数名]]的写法实现:
graf_func <- function(dataframe, vary, varx){ grafico <- dataframe |> e_charts(.data[[vary]]) |> e_bar(.data[[varx]]) |> e_tooltip(trigger = "axis") return(grafico) } # 字符串传参调用示例 graf_func(dataframe = df, vary = "var1", varx = "var2")
内容的提问来源于stack exchange,提问作者Jorge Hernández
相关产品推荐
相关产品推荐

