使用Map()时,如何选择每列的名称?

时间:2017-04-06 23:50:31

标签: r

我打算编写一个函数,使用R绘制数据框中数字列的直方图。但是,问题是我不知道如何选择该列的名称作为直方图的标题。例如,"年龄"的标题列应为"年龄直方图"。你们能给我一些建议吗?非常感谢。

# Plot histograms for x
hist_numeric <- function(x){
  if (is.numeric(x) | is.integer(x)){
    hist(x, main = "???")
  } else {
    message("Not integer or numeric varible")
  }
}
# plot histograms for every column in the dataframe
map(df, hist_numeric)

1 个答案:

答案 0 :(得分:0)

您可以使用colnames在函数调用之前将列名放入列表中,然后使用map2为函数调用多个参数:

hist_numeric <- function(x, name){
  if (is.numeric(x) | is.integer(x)){
    hist(x, main = name)
  } else {
    message("Not integer or numeric varible")
  }
}

df <- data.frame(x = rnorm(50),
                 y = letters[1:10],
                 z = runif(50))
names_col <- colnames(df)    

map2(.x = df, .y = names_col, .f = hist_numeric)