【问题标题】:Creating a plot function in r在 r 中创建绘图函数
【发布时间】:2019-04-28 20:49:07
【问题描述】:

我正在尝试创建一个绘图函数来创建散点图。但是,它似乎无法正常工作。我相信 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)

【问题讨论】:

标签: r function plot


【解决方案1】:

问题确实源于您在plotScatter 函数中子集df 的方式。为了将两列相互绘制,在df[,x] 中,x 应该是一个字符串(df[,y] 也是如此)。

这里有两种解决方法:

1) 以 x 和 y 为字符串调用函数

plotScatter <- function(x, y, df) {
  plot(df[,y]~df[,x])
}
plotScatter('score', 'performance', dataframe)

2)在函数内部使用deparsesubstitute将变量转换为字符串

plotScatter <- function(x, y, df) {
  x <- deparse(substitute(x))
  y <- deparse(substitute(y))
  plot(df[,y]~df[,x])
}
plotScatter(score, performance, dataframe)

【讨论】:

    猜你喜欢
    • 2020-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-10
    相关资源
    最近更新 更多