楼主: ttxs2014
3297 5

[问答] 用R自己编函数,怎么导不出直方图 [推广有奖]

  • 2关注
  • 0粉丝

小学生

57%

还不是VIP/贵宾

-

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

5论坛币
做检验单样本均值的t检验,目标是返回p-值和画出该样本的直方图,a(3)只返回了p-值,怎么修改才能导出直方图
a<-function(i)
  {  library(pwr)   
     b<-my[,i]
     res<-t.test(b,mu=12,alternative = c("two.sided"))
     library(lattice)
     histogram(~b)     #直方图
     return(res$p.value)   }
a(3)

最佳答案

hongweigg 查看完整内容

1、若你要导出直方图的可见图,则使用图形设备: png("his-graph.png") histogram(b) dev.off() 图在“我的文档”中找 2、若你仅仅是想导出直方图的数据,可以用hist()函数,histogram()函数没有找到直方图数据的更多信息,输出时使用列表输出多个变量,如果使用return,则前面的变量不会被返回,若要返回多个变量,可把多个变量放在列表里一起返回,例如同时返回p值和直方图的分段数,分段计数: a 注:以上运行结果仅 ...
关键词:直方图 单样本均值 怎么修改 t检验 单样本 直方图 样本

回帖推荐

hongweigg 发表于2楼  查看完整内容

1、若你要导出直方图的可见图,则使用图形设备: png("his-graph.png") histogram(b) dev.off() 图在“我的文档”中找 2、若你仅仅是想导出直方图的数据,可以用hist()函数,histogram()函数没有找到直方图数据的更多信息,输出时使用列表输出多个变量,如果使用return,则前面的变量不会被返回,若要返回多个变量,可把多个变量放在列表里一起返回,例如同时返回p值和直方图的分段数,分段计数: a 注:以上运行结果仅 ...
沙发
hongweigg 发表于 2015-8-21 21:10:08 |只看作者 |坛友微信交流群
1、若你要导出直方图的可见图,则使用图形设备:
png("his-graph.png")
histogram(b)
dev.off()
图在“我的文档”中找

2、若你仅仅是想导出直方图的数据,可以用hist()函数,histogram()函数没有找到直方图数据的更多信息,输出时使用列表输出多个变量,如果使用return,则前面的变量不会被返回,若要返回多个变量,可把多个变量放在列表里一起返回,例如同时返回p值和直方图的分段数,分段计数:
a<-function(){
    #...(省略前面处理代码,后面为返回结果)
    HIS<-his(b)
    list(p=res$p.value,his_breaks=HIS$breaks,his_counts=HIS$counts)
}

执行命令:
a(i)

运行效果为:
> a(m2)
$p
[1] 1

$his_break
[1] 50634000 50635000 50636000 50637000 50638000 50639000 50640000 50641000
[9] 50642000 50643000

$his_count
[1] 34  0  0  0  6  0  0  0  5

>

注:以上运行结果仅展示输出形式。

若要使用a()函数的值自己画图,或进入后续处理,可以直接用 [结果变量]$p,[结果变量]$his_breaks,[结果变量]$his_counts来获取结果:
>A<-a(i)
>A$p
>A$his_breaks
>A$his_counts

帖子编辑器有问题,把数据全搞乱了。见图。

R-handle-answer.png (20.84 KB)

r-handle-answer20150822

r-handle-answer20150822

已有 1 人评分论坛币 收起 理由
admin_kefu + 25 热心帮助其他会员

总评分: 论坛币 + 25   查看全部评分

使用道具

藤椅
nuomin 发表于 2015-8-22 09:42:00 |只看作者 |坛友微信交流群
看看关于R中frame的问题。

使用道具

板凳
ttxs2014 发表于 2015-8-22 21:15:25 |只看作者 |坛友微信交流群
nuomin 发表于 2015-8-22 09:42
看看关于R中frame的问题。
能具体说一下思路吗?

使用道具

报纸
ttxs2014 发表于 2015-8-23 20:43:19 |只看作者 |坛友微信交流群
hongweigg 发表于 2015-8-21 21:10
1、若你要导出直方图的可见图,则使用图形设备:
谢谢大神,一种不错的思路哈。
后来我改了下程序
a<-function(i)
  { library(lattice)
   b<-my[,i]
  res<-t.test(b,mu=12,alternative = c("two.sided"))
  g<-histogram(~b)
  return(g)

  return(res$p.value)}
画出了直方图了,没想到用return就行

使用道具

地板
hongweigg 发表于 2015-8-23 22:56:56 |只看作者 |坛友微信交流群
ttxs2014 发表于 2015-8-23 20:43
谢谢大神,一种不错的思路哈。
后来我改了下程序
a
如果用两个return,则只有前一个有效,第2个return()中的数据不能返回。

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-5 04:28