R语言学习笔记——table函数的应用

更新时间:2023-06-25 23:59:18 阅读: 评论:0

R语⾔学习笔记——table函数的应⽤
⼀、table 函数对应的就是统计学中的列联表,是⼀种记录频数的⽅法,对于统计来说有⾮常重要的应⽤,下⾯的例⼦都是针对维数为2的情况举例,多维的情况是类似的
下⾯看⼀个例⼦:
1> ct <- data.frame(
2+        Vote.for.X = factor(c("Yes", "Yes", "No", "Not Sure", "No"), levels = c("Yes", "No", "Not Sure")),
3+        Vote.for.X.Last.Time =  factor(c("Yes", "No", "No", "Yes", "No"), levels = c("Yes", "No"))
4+      )
5> ct
6  Vote.for.X Vote.for.X.Last.Time
7  1        Yes                  Yes压岁钱英文
8  2        Yes                  No
9  3        No                  No
10  4  Not Sure                  Yes
11  5        No                  No
12> cttab <-table(ct)
13> cttab
14          Vote.for.X.Last.Time
15Vote.for.X Yes No
16  Yes        1  1
17  No        0  2
18  Not Sure  1  0
⾸先我们创建了⼀个⽰例数据集合,其中我们指定我们的因⼦的⽔平,然后 table 函数则是统计所有因⼦对出现的情况的频数
下⾯看⼀下 cttab 的特点:
1> mode(cttab)
2[1] "numeric"南通培训网
3> str(cttab)
4 'table' int [1:3, 1:2] 1 0 1 1 2 0
5 - attr(*, "dimnames")=List of 2
6  ..$ Vote.for.X          : chr [1:3] "Yes" "No" "Not Sure"
7  ..$ Vote.for.X.Last.Time: chr [1:2] "Yes" "No"
8> summary(cttab)
9Number of cas in table: 5
10Number of factors: 2
11Test for independence of all factors:
12 Chisq = 2.9167, df = 2, p-value = 0.2326
13 Chi-squared approximation may be incorrect
14> attributes(cttab)
15$dim
16[1] 3 2
17
18$dimnames
19$dimnames$Vote.for.X
20[1] "Yes"      "No"      "Not Sure"
21
22$dimnames$Vote.for.X.Last.Time人称代词
23[1] "Yes" "No"
24
25
26$class
27[1] "table"
⼆、table对象的操作
⼀个必须要掌握的操作,addmargins
1> addmargins(cttab)
2          Vote.for.X.Last.Time
3Vote.for.X Yes No Sum
i will always love you 歌词4  Yes        1  1  2
5  No        0  2  2
元音字母和辅音字母
6  Not Sure  1  0  1
7  Sum        2  3  5
下⾯取出各维度的名字,也就是各个的⽔平
1> dimnames(cttab)
2$Vote.for.X
3[1] "Yes"      "No"      "Not Sure"
4
5$Vote.for.X.Last.Time
6[1] "Yes" "No"
下⾯提取感兴趣的⼦表:subtable 类⽐ subt
subtable(tbl,subnames) tbl 感兴趣的表,subnames ⼀个类表,列出⾃⼰各个维度感兴趣的⽔平, subtable 实现如下
快乐英语
1subtable <- function(tbl, subnames) {
2  #将 table 转换称 array 获得 table ⾥⾯的所有元素
3  tblarray <- unclass(tbl)
4
托福拼分5  #将 tblarray 以及 subnames 组合到⼀个list中
6  dcargs <- list(tblarray)
7  ndims <- length(subnames)
8  for(i in 1:ndims) {
9    dcargs[[i+1]] <- subnames[[i]]
10  }
11
12  #等价与执⾏ dcargs[[1]][dcargs[[2]][i], dcargs[[3]][j]] i,j 取遍所有该属性的元素
13  subarray <- do.call("[", dcargs)
14
15  #对list中的每⼀个属性调⽤ length
16  dims <- lapply(subnames, length)
yesterday once more mp317  subtbl <- array(subarray, dims, dimnames = subnames)
18  class(subtbl) <- "table"
19  return(subtbl)
20}
下⾯给出⼀个例⼦:可能很有⽤的
1> as.data.frame(cttab)
2  Vote.for.X Vote.for.X.Last.Time Freq
3  1        Yes                  Yes    1
4  2        No                  Yes    0
2013山东高考语文
5  3  Not Sure                  Yes    1
6  4        Yes                  No    1
7  5        No                  No    2
8  6  Not Sure                  No    0
tabdom 计算table的统计频率
1tabdom <- function(tbl, k) {
pharma2  tbldf <- as.data.frame(tbl)
3  freqord <- order(tabldf$Freq, decreasing=TRUE)
4  dom <- tbldf[freqord, ][1:k]
5  return(dom)
6}
注意:aggregate() 函数  cut() 函数

本文发布于:2023-06-25 23:59:18,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/157712.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:情况   维度   集合   操作   属性   个例   函数
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图