在R中使用apply for graph title获取 Dataframe 列名称

qni6mghb  于 2023-03-27  发布在  其他
关注(0)|答案(2)|浏览(117)

我在一个dataframe的列上运行apply函数,并执行几个操作,包括绘制一些图。我想获取列名,以将其用作每个图的标题。我发现了一个post that uses lapply,但我不认为我可以使用它,因为我需要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)
rggaifut

rggaifut1#

你可以使用mapplysapply的多变量版本。但是你需要重写函数来接受两个参数。

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)

第一个调用将输出简化为一个矩阵,第二个调用则不是,它返回一个列表。

wz8daaqr

wz8daaqr2#

我会使用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)

相关问题