全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3589 5
2015-08-21
悬赏 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 注:以上运行结果仅 ...
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
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

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-8-22 09:42:00
看看关于R中frame的问题。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-8-22 21:15:25
nuomin 发表于 2015-8-22 09:42
看看关于R中frame的问题。
能具体说一下思路吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

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就行
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2015-8-23 22:56:56
ttxs2014 发表于 2015-8-23 20:43
谢谢大神,一种不错的思路哈。
后来我改了下程序
a
如果用两个return,则只有前一个有效,第2个return()中的数据不能返回。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群