Получение имен столбцов данных с помощью заголовка графика в R - PullRequest
1 голос
/ 07 марта 2019

Я запускаю функцию apply для столбцов информационного кадра и выполняю несколько операций, включая построение некоторых графиков. Я хочу получить имена столбцов, чтобы использовать их в качестве заголовка каждого графика. Я нашел сообщение , которое использует lapply , но я не думаю, что смогу использовать его, так как мне нужно применить.

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)  

Ответы [ 2 ]

1 голос
/ 07 марта 2019

Вы можете использовать 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)

Первый вызов упрощает вывод в матрицу.Второй нет, он возвращает список.

1 голос
/ 07 марта 2019

Я бы использовал 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)  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...