楼主: chris1998
2896 7

[实际应用] 如何一次性计算出多格期望频次 [推广有奖]

  • 5关注
  • 7粉丝

已卖:2542份资源

讲师

44%

还不是VIP/贵宾

-

威望
0
论坛币
124770 个
通用积分
15.2783
学术水平
44 点
热心指数
54 点
信用等级
43 点
经验
2633 点
帖子
524
精华
0
在线时间
456 小时
注册时间
2011-5-29
最后登录
2025-7-28

楼主
chris1998 发表于 2014-2-23 16:06:15 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
数据框testdata中有150个表格的数据,其中的8个表格数据如下(nrow=2, byrow=T):
a b c d e f g h
1 106 9 82 72 22 1 5 3
2 106 9 82 72 8 0 0 1
3 106 9 82 72 0 1 0 0
4 106 9 82 72 0 1 0 0
5 106 9 82 72 0 1 0 0
6 106 9 82 72 16 1 31 19
7 106 9 82 72 2 0 7 2
8 106 9 82 72 0 0 0 5
问题是:如何一次性计算出每个表格中e, f, g, h每一格的期望频次??请大家帮忙写几句命令啊!多谢多谢啦!
二维码

扫码加我 拉你入群

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

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

关键词:一次性 表格数据 Data test 数据框 如何

回帖推荐

jmpamao 发表于6楼  查看完整内容

哦 那试试这个 bb=lapply(1:nrow(testdata),function(x){ chisq.test(matrix(unlist(testdata[x,]),2,byrow=T))$expected[2,] }) matrix(unlist(bb),ncol=4,byrow=T)

沙发
nuomin 发表于 2014-2-24 08:16:28
你运行一下
  1. str(testdata)
复制代码
再把结果贴出来看看

藤椅
chris1998 发表于 2014-2-24 11:03:34
> testdata<-read.delim("clipboard")
> testdata
    a b  c  d  e f  g  h
1 106 9 82 72 22 1  5  3
2 106 9 82 72  8 0  0  1
3 106 9 82 72  0 1  0  0
4 106 9 82 72  0 1  0  0
5 106 9 82 72  0 1  0  0
6 106 9 82 72 16 1 31 19
7 106 9 82 72  2 0  7  2
8 106 9 82 72  0 0  0  5
> str(testdata)
'data.frame':   8 obs. of  8 variables:
$ a: int  106 106 106 106 106 106 106 106
$ b: int  9 9 9 9 9 9 9 9
$ c: int  82 82 82 82 82 82 82 82
$ d: int  72 72 72 72 72 72 72 72
$ e: int  22 8 0 0 0 16 2 0
$ f: int  1 0 1 1 1 1 0 0
$ g: int  5 0 0 0 0 31 7 0
$ h: int  3 1 0 0 0 19 2 5
>
做出来是这个样子吗?然后呢?

板凳
jmpamao 发表于 2014-2-24 11:47:07
lapply(testdata[,5:8],function(x)as.data.frame(table(x)))
这样的?yywan0913童鞋已经提示了

报纸
chris1998 发表于 2014-2-24 11:58:06
我想要计算出的是每个表格中e, f, g,h格的期望频次(expected frequency)
如表格1中 c( 106, 9, 82, 72, 22, 1,  5,  3)(nrow=2,byrow=R)中e,f,g,h格的期望频次分别就是13.22667 1.033333  8.99  7.75

> aa<-matrix(c(106,9,82,72,22,1,5,3),nrow=2,byrow=T)
> aa
     [,1] [,2] [,3] [,4]
[1,]  106    9   82   72
[2,]   22    1    5    3
> chisq.test(aa)$expected
          [,1]     [,2]  [,3]  [,4]
[1,] 114.77333 8.966667 78.01 67.25
[2,]  13.22667 1.033333  8.99  7.75

地板
jmpamao 发表于 2014-2-24 13:10:27
哦 那试试这个
bb=lapply(1:nrow(testdata),function(x){
    chisq.test(matrix(unlist(testdata[x,]),2,byrow=T))$expected[2,]  
  })
  matrix(unlist(bb),ncol=4,byrow=T)

7
chris1998 发表于 2014-2-24 15:45:03
多谢jmpamao 的帮助,这个命令程序很管用啊,使用它所计算出的结果跟我一个表格一个表格计算出来的都一样。

8
chris1998 发表于 2014-2-24 15:45:48
烦请jmpamao将该贴的解决方法再贴到https://bbs.pinggu.org/thread-2914965-1-1.html
好让我将你的帖子设置为最佳回答后给你把 200个论坛币转过去。多谢了!

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

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