楼主: chenselfff
1092 0

[问答] sapply对数据框调用自定义函数时如何获得向量名称? [推广有奖]

  • 0关注
  • 0粉丝

小学生

14%

还不是VIP/贵宾

-

威望
0
论坛币
6 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
36 点
帖子
3
精华
0
在线时间
6 小时
注册时间
2017-7-29
最后登录
2017-12-2

楼主
chenselfff 发表于 2017-10-14 14:17:24 |AI写论文
2论坛币
各位好!
    初来本版块,提问不合理不合规之处还请指出!
    以下是本小白的问题:
    数据框 safety_orig 如下,共2 列数据(列名称分别为:Percent.Under.21 Fatal.Accidents.per.1000),这里仅取6行数据:

Percent.Under.21     Fatal.Accidents.per.1000
1                13                    2.962
2                12                    0.708
3                 8                    0.885
4                12                    1.652
5                11                    2.091
6                17                    2.627


     我应用sapply对该2列数据分别绘制 histogram,这将会产生2个histogram(2图的排列是在layout函数设置为1行2列);为了自定义设置这2个histogram的 主标题(main)和行列标题(xlab,ylab),我写了自定义的safe_hist 函数如下:

safe_hist  <- function(x) {
hist(x,ann=FALSE)  #将标题等默认的注释都清除
col_name <- names(x)  #希望获得向量 x 的名称(原数据框的某一 列名称 )
t_main <- paste("Histogram of ",col_name)
title(t_main,xlab=col_name,ylab="Frequency")
}


   运行 sapply(safety_orig,safe_hist) 后的结果如下,主标题“Histogram of ” 后面没有我想要显示的2个名称,即 Percent.Under.21 和 Fatal.Accidents.per.1000(xlab 同样也没有),这2个名称 我在以上的 safe_hist  函数中是希望通过 col_name <- names(x) 得到 向量x 的名称

   因此,小白在这里请假各位大神!这段代码的问题出在哪里?该如何将原来 数据框(即safety_orig)的列名称(Percent.Under.21 和 Fatal.Accidents.per.1000)在应用sapply绘制 histogram的时候都显示出来?
   万分感谢!
2个histogram



关键词:apply 自定义函数 appl 数据框 App

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 21:29