我正在尝试创建绘图函数以创建散点图。但是,它似乎无法正常工作。我相信df [,y]和df [,x]似乎是问题所在,但不确定什么地方出错。请帮忙!
class<-c(1,2,3,4)
level<-c(1,2,3,4)
school<-c(2,3,4,5)
score<-c(5,6,7,8)
performance<-c(3,7,6,5)
dataframe = data.frame(class,level,school,score,performance)
plotScatter <- function(x, y, df) {
plot(df[,y]~df[,x])
}
plotScatter(score, performance, dataframe)
答案 0 :(得分:2)
该问题确实源自您在df
函数中对plotScatter
进行子集化的方式。为了相互绘制两列,在df[,x]
中,x
应该是字符串(与df[,y]
相同)。
有两种解决方法:
1)以x和y作为字符串调用函数
plotScatter <- function(x, y, df) {
plot(df[,y]~df[,x])
}
plotScatter('score', 'performance', dataframe)
2)在函数内使用deparse
和substitute
将变量转换为字符串
plotScatter <- function(x, y, df) {
x <- deparse(substitute(x))
y <- deparse(substitute(y))
plot(df[,y]~df[,x])
}
plotScatter(score, performance, dataframe)