内容简介:翻译自:https://stackoverflow.com/questions/26291674/create-frequency-tables-for-multiple-factor-columns-in-r
我是R的新手.我正在编写一本关于我工作的常用功能/特性的语法的单独手册.我的示例数据框如下:
x.sample <- structure(list(Q9_A = structure(c(5L, 3L, 5L, 3L, 5L, 3L, 1L, 5L, 5L, 5L), .Label = c("Impt", "Neutral", "Not Impt at all", "Somewhat Impt", "Very Impt"), class = "factor"), Q9_B = structure(c(5L, 5L, 5L, 3L, 5L, 5L, 3L, 5L, 3L, 3L), .Label = c("Impt", "Neutral", "Not Impt at all", "Somewhat Impt", "Very Impt"), class = "factor"), Q9_C = structure(c(3L, 5L, 5L, 3L, 5L, 5L, 3L, 5L, 5L, 3L ), .Label = c("Impt", "Neutral", "Not Impt at all", "Somewhat Impt", "Very Impt"), class = "factor")), .Names = c("Q9_A", "Q9_B", "Q9_C"), row.names = c(NA, 10L), class = "data.frame") > x.sample Q9_A Q9_B Q9_C 1 Very Impt Very Impt Not Impt at all 2 Not Impt at all Very Impt Very Impt 3 Very Impt Very Impt Very Impt 4 Not Impt at all Not Impt at all Not Impt at all 5 Very Impt Very Impt Very Impt 6 Not Impt at all Very Impt Very Impt 7 Impt Not Impt at all Not Impt at all 8 Very Impt Very Impt Very Impt 9 Very Impt Not Impt at all Very Impt 10 Very Impt Not Impt at all Not Impt at all
我的原始数据框有21列.
如果我想找到平均值(将其视为序数变量):
> sapply(x.sample,function(x) mean(as.numeric(x), na.rm=TRUE)) Q9_A Q9_B Q9_C 4.0 4.2 4.2
我想将数据帧中所有变量的频率表制成表格.我搜索了互联网和许多论坛,并看到最近的命令是使用sapply.但是当我这样做时,它给了所有0.
> sapply(x.sample,function(x) table(factor(x.sample, levels=c("Not Impt at all", "Somewhat Impt", "Neutral", "Impt", "Very Impt"), ordered=TRUE))) Q9_A Q9_B Q9_C Not Impt at all 0 0 0 Somewhat Impt 0 0 0 Neutral 0 0 0 Impt 0 0 0 Very Impt 0 0 0
题
对于数据帧中的所有列(即因子),如何使用sapply按照上表将频率表制成表格?
PS很抱歉,如果这似乎是琐事,但我搜索了2天没有答案,并尝试所有可能的组合.也许我没有足够的搜索=(
非常感谢.
你快到了.只需对你的功能进行一次小改动就能让你在那里.函数(x)中的x …需要传递给table()调用:
levs <- c("Not Impt at all", "Somewhat Impt", "Neutral", "Impt", "Very Impt") sapply(x.sample, function(x) table(factor(x, levels=levs, ordered=TRUE)))
稍微重复一下代码可能会让它更易于阅读:
sapply(lapply(x.sample,factor,levels=levs,ordered=TRUE), table) # Q9_A Q9_B Q9_C #Not Impt at all 3 4 4 #Somewhat Impt 0 0 0 #Neutral 0 0 0 #Impt 1 0 0 #Very Impt 6 6 6
翻译自:https://stackoverflow.com/questions/26291674/create-frequency-tables-for-multiple-factor-columns-in-r
以上所述就是小编给大家介绍的《在R中为多因子列创建频率表》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 量化选股-因子检验和多因子模型的构建
- Redis实战之限制操作频率
- 使用Memcache做频率限制引发的问题
- 谈谈因子分解机模型(FM)
- Go 基于 Redis 通用频率控制的实现
- MapReduce实战 - 根据文章记录获取时段内发帖频率
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。