R中函数的新特性
我在R中运行这个函数,它应该在直方图上绘制密度曲线我这里有原始的单一代码:R中函数的新特性,r,function,R,Function,我在R中运行这个函数,它应该在直方图上绘制密度曲线我这里有原始的单一代码: ggplot(golf, aes(`Driving Accuracy`)) + geom_histogram(aes(y = ..density..), colour = "black", fill = "white") + stat_function(fun = dnorm, args = list(mean = mean(golf$`Drivi
ggplot(golf, aes(`Driving Accuracy`)) +
geom_histogram(aes(y = ..density..), colour = "black", fill = "white") +
stat_function(fun = dnorm, args = list(mean = mean(golf$`Driving Accuracy`, na.rm = T),
sd = sd(golf$`Driving Accuracy`, na.rm = T))) +
xlab("Driving Accuracy (%)")
现在我正试图修改这段代码,并使用Lappy和我的数字数据进行类似的绘图
绘图仪aes()
无法接受字符串输入。请尝试以下操作:
plotter <- function(s) ggplot(Prediction.df, aes_string(s)) +
geom_histogram(aes(y = ..density..), colour = "black", fill = "white") +
stat_function(fun = dnorm, args = list(mean = mean(Prediction.df[,s], na.rm = T),
sd = sd(Prediction.df[,s], na.rm = T))) +
xlab("Frequency")
lapply(X=names(Prediction.df),FUN=plotter)
绘图仪aes()
无法接受字符串输入。请尝试以下操作:
plotter <- function(s) ggplot(Prediction.df, aes_string(s)) +
geom_histogram(aes(y = ..density..), colour = "black", fill = "white") +
stat_function(fun = dnorm, args = list(mean = mean(Prediction.df[,s], na.rm = T),
sd = sd(Prediction.df[,s], na.rm = T))) +
xlab("Frequency")
lapply(X=names(Prediction.df),FUN=plotter)
plotter在较新版本的dplyr
中,在aes
中传递字符串可以转换为sym
bol并进行评估(!!
),因为aes\u string
将来可能会被弃用。请注意,ensym
可以同时接受带引号或不带引号的参数
plotter <- function(s) {
ggplot(Prediction.df, aes(!! rlang::ensym(s))) +
geom_histogram(aes(y = ..density..),
colour = "black", fill = "white") +
stat_function(fun = dnorm, args =
list(mean = mean(Prediction.df[,s], na.rm = TRUE),
sd = sd(Prediction.df[,s], na.rm = TRUE))) +
xlab("Frequency")
}
plotter在较新版本的dplyr
中,在aes
中传递字符串可以转换为sym
bol并进行评估(!!
),因为aes\u string
将来可能会被弃用。请注意,ensym
可以同时接受带引号或不带引号的参数
plotter <- function(s) {
ggplot(Prediction.df, aes(!! rlang::ensym(s))) +
geom_histogram(aes(y = ..density..),
colour = "black", fill = "white") +
stat_function(fun = dnorm, args =
list(mean = mean(Prediction.df[,s], na.rm = TRUE),
sd = sd(Prediction.df[,s], na.rm = TRUE))) +
xlab("Frequency")
}
绘图仪