我有一个名为df的数据框。我尝试构建一个函数来绘制密度,但会出现一些错误。
df
A B C D E F
1 asd 29 sf 36 sf 44
2 fsd 24 gfd 56 gfd 34
3 gs 46 asd 39 asd 37
4 asd 50 gfg 26 gfg 23
5 sf 43 fg 56 fg 37
6 dfg 29 er 35 er 51
7 sdfg 32 tr 27 tr 28
8 fgdsgd 24 qw 31 qw 36
9 gdfgd 35 gfg 33 gfg 33
dis <- function(name,...)
{
fg <- qplot(name, data = , geom = "density")
fg
}
我创建了一个名为dis
的函数来实现以上目的:
dis(F,data=df)
or
dis(B,data=df)
我知道我可以使用ggplot2
,但是我需要在函数中使用它。
答案 0 :(得分:2)
也许这可以帮助:
library(ggplot2)
dis <- function(data,variable)
{
# you can use both, or the commented version or the qplot one
# fg <- ggplot(data,aes(variable)) + geom_density()
fg <- qplot(variable,data = data, geom = "density")
fg
}
dis(df, df$F)
答案 1 :(得分:0)
我认为您正在寻找非标准评估(NSE)。一个人可以做:
library(ggplot2)
# Switched data and variable name for taste. Personally prefer data argument first
dis <- function(df,name){
fg <- qplot(!!rlang::sym(name),
data = df,
geom = "density",
ylab = waiver())
fg
}
dis(df,"F")