在用户定义的函数中包含不同的标签

时间:2018-04-29 18:56:21

标签: r

我需要编写一个R函数,其中输入是两个定性变量,它们输出频率表,卡方检验和两个变量之一的条形图。我可以得到基本的条形图,但我需要添加标题和一个取决于所用变量名称的图例。我尝试使用cat和deparse函数替换变量名称,但绘图仍然打印时没有任何标题,轴标签或图例。

fx1=function(y,x){
  yy=as.factor(y)
  xx=as.factor(x)
  v=ftable(yy,xx)
  f=chisq.test(y,x)
  g=barplot(v, main= cat("Barplot of ", deparse(substitute(y)), 
                         " by", deparse(substitute(x))), 
            xlab= deparse(substitute(x)), 
            ylab = 'Frequency', names.arg=c(names(x)))
  r=c(v,g,f)
  return(r)
}

1 个答案:

答案 0 :(得分:0)

尝试此操作(我所做的唯一更改是在您的函数中使用固定括号,并替换cat()上的paste()

fx1=function(y,x){
  yy=as.factor(y)
  xx=as.factor(x)
  v=ftable(yy,xx)
  f=chisq.test(y,x)
  g=barplot(v, main= paste("Barplot of ", 
                            deparse(substitute(y)), 
                            " by", 
                            deparse(substitute(x))), 
            xlab= deparse(substitute(x)), 
            ylab = 'Frequency', names.arg=c(names(x)))
  r=c(v,g,f)
  return(r)
}

myx <- sample(c("M","F"), 10, replace = TRUE)
myy <- sample(c(0,1), 10, replace = TRUE)
fx1(myx,myy)