r - 如何将字符串作为函数中的值处理?
问题描述
我发现很难提出一个适合的问题,所以我用一个例子来说明我的问题。我想使用特定函数为我的数据集中的多个变量创建类似的图。该函数创建一个汇总数据框并生成一个图。
因此,如果没有函数,我会使用 summarySE() 函数(source)执行以下操作
library(ggplot2)
library(plyr)
#data
df <- data.frame(case=rep(1:5,3),
value=rnorm(15))
#summarise
df_sum <- summarySE(df, "value", groupvars=c("case"))
#plot
ggplot(df_sum, aes(x=case, y=value)) +
geom_point()
现在我尝试编写一个函数,该函数接受一个数据帧和该数据帧中的一个变量,并生成上面的图。
#function reproducing a nonsensical plot
f <- function(data,var){
data_sum <- summarySE(data, var, groupvars=c("case"))
x <- ggplot(data_sum, aes(x=case, y=var)) +
geom_point()
return(x)
}
f(df,"value")
我想我可以从 df_sum 中的汇总变量的名称与 df 中的变量相同的事实中受益。但是因为 ggplot() 采用了我在 f() 中调用的字符串,所以它产生了一个无意义的图。
有人有一个通用的解决方案如何解决这样的问题吗?这不是我第一次在函数中使用字符串作为输入时遇到此类问题。我尝试了 unquote() 和类似的东西,但没有任何效果。
解决方案
推荐阅读
- json - 将 JSON 字典转换为退出 JSON 文件 Swift
- tensorflow - tf.keras.estimator.model_to_estimator 无法使用自定义和 Lambda 层转换 keras 模型
- excel - 如何在 VBA 中解析 XML 并检索特定值
- time - 时间复杂度为 2^O(log(n))
- apache-spark - 为什么 Spark 为一个简单的聚合运行 5 个作业?
- java - 如何将 logback 文件路径概括为 windows/linux 操作系统?
- python - 从两列数据框中对单列系列运行 CountVectorizer?
- windows-10-desktop - 与“Pin to Start”相关的数据存储在哪里?
- list - 与现有列表匹配的用户输入
- swift - 如何正确地将 RealmDB 结果对象映射到 SwiftUI 列表?