在R中使用apply for graph title获取数据帧列名称

在R中使用apply for graph title获取数据帧列名称,r,dataframe,graph,apply,columnname,R,Dataframe,Graph,Apply,Columnname,我在数据框的列上运行apply函数,并执行一些操作,包括绘制一些图形。我想得到列名,将它们用作每个图表的标题。我找到了一个,但我不认为我可以使用它,因为我需要申请 var1<-rnorm(100) var2<-rnorm(100) var3<-rnorm(100) df<-data.frame(var1,var2, var3) colnames(df)<-c("var1", "var2", "var3") myFUN<-function(x){

我在数据框的列上运行apply函数,并执行一些操作,包括绘制一些图形。我想得到列名,将它们用作每个图表的标题。我找到了一个,但我不认为我可以使用它,因为我需要申请

var1<-rnorm(100)
var2<-rnorm(100)
var3<-rnorm(100)  
df<-data.frame(var1,var2, var3)  
colnames(df)<-c("var1", "var2", "var3")  

myFUN<-function(x){  

  themean<-mean(x)  
  thevar<-var(x)  

  Name<-colnames(x)  
  thetitle <- paste('Variable: ', Name, '')  
  hist(x,main=thetitle)  

return(list(themean, thevar))  
}  

apply(df,2,myFUN)  

var1我会使用
lappy
例如:

myFUN<-function(x){  

  themean<-mean(df[[x]])  
  thevar<-var(df[[x]])  

  Name<-x  
  thetitle <- paste('Variable: ', Name, '')  
  hist(df[[x]],main=thetitle, xlab = Name)  

  return(list(themean, thevar))  
}  

lapply(names(df), myFUN)  

myFUN您可以使用
mapply
,这是
sapply的多变量版本。但是您需要重写函数以接受两个参数

myFUN2 <- function(x, Name){ 

  themean <- mean(x)  
  thevar <- var(x)  

  thetitle <- paste('Variable: ', Name, '')  
  hist(x, main = thetitle)  

  return(list(themean, thevar))  
}  

mapply(myFUN2, df, names(df))
mapply(myFUN2, df, names(df), SIMPLIFY = FALSE)

myFUN2为什么需要
apply
?您的
apply
调用相当于
lappy(df,myFUN)