在 R 中为多个因子列创建频率表

2023-12-29

我是 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 in function(x) ...需要传递到table() call:

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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 R 中为多个因子列创建频率表 的相关文章

随机推荐

  • JaCoCo 和 Gradle - 过滤选项

    我目前正在使用 Gradle 插件来运行 JaCoCo 来进行代码覆盖率报告 我想在我的 build gradle 中指定一些过滤选项 https github com jacoco jacoco wiki FilteringOptions
  • 如何使用 openpyxl“格式化单元格”?

    我想使用 openpyxl 格式化 Excel 工作表中的列单元格 使其数字小数位为 0 示例表 B C 63245634566 NAME 63562341234 NAME 23452345345 NAME 21345234554 NAME
  • Jetpack Compose 矢量解析问题

    我正在尝试加载向量 但不断收到此错误堆栈跟踪 java lang IllegalArgumentException Unknown command for R at androidx compose ui graphics vector P
  • 如何在 TCL 中创建并迭代哈希值的哈希值?

    如何在 TCL 中创建并迭代哈希值的哈希值 如果我有这样的数据 foo a gt aa gt aa1 aa2 aa3 ab gt ab1 ab2 ab3 ac gt ac1 ac2 ac3 b gt ba gt ba1 ba2 ba3 bb
  • 带计时器的自动静音 Android 设备设置我的用户

    我的应用程序中有 2 个按钮 开始时间和结束时间 现在我希望设备在用户设置的开始和结束持续时间内进入静音模式 我该怎么做 我的用于获取开始时间和结束时间输入的代码mainactivity java code包 com example h m
  • 在C中通过名称获取进程ID

    我试图通过进程名称获取进程 ID 例如 notepad exe 但之前 Stack Overflow 上的解决方案似乎无法正常工作 这是我尝试过的 DWORD FindProcessId const char processname HAN
  • Sencha touch 2 + Apple 推送通知 + Ext.device.Push

    我最近开始使用 Sencha Touch 2 进行开发 目前我正在创建一个需要 Apple 推送通知支持的应用程序 因此 我在 Apple 开发人员中心创建了必要的证书 并使用它们将应用程序与 Sencha Touch SDK 工具打包在一
  • XML 1.0 和 XML 2.0 之间的区别

    XML 1 0 和 XML 2 0 有什么区别 XML 2 0 从来没有出现过 即使是草案也是如此 有一个并不完全流行的 XML 1 1 标准 它有三个主要变化 其中最重要的变化是在 XML 1 0 第五版中就地应用于 XML 1 0 这一
  • 如何计算 3d numpy 数组中的凸包图像/体积

    我想知道是否有任何基于 numpy 的工具可以 给定 3D 二进制输入 numpy 图像 找到其凸包 并返回此 3D 凸包内的索引或类似体素 3D 像素 列表 一种可能性是使用skimage morphology convex hull i
  • 将 void*(*)(void*) 类型转换为 void(*)(void)

    作为作业的一部分 我试图创建一个像 pthreads 这样的用户级线程库 为了处理线程之间的上下文切换 我使用 swapcontext 函数 在使用它之前 我必须使用 makecontext 函数创建一个上下文 makecontext 需要
  • 使用 Python 将文件夹上传到 Google Cloud Storage?

    我找到了 upload from file 和 upload from filename 但是是否有函数或方法可以通过 Python 将整个文件夹上传到 Cloud Storage 这对我有用 将所有内容从本地目录复制到谷歌云存储中的特定存
  • 从 python 中的单独文件导入列表变量

    脚本 py list one two three python script here 我的列表变得非常长 大约 400 行 有没有办法让变量list在一个单独的 py 文件中并导入它 或者我应该有单独的文件并通过迭代创建一个列表 list
  • MySQL 使用另一个表中的列名

    我想知道是否可以返回一个结果集 其列名存储在单独的表中 这是可能的还是我需要一个带有变量的存储过程 请参阅 mysql dump 的链接和所需结果集的描述 http pastie org 584865 http pastie org 584
  • RabbitMQ:在直接交换中创建动态队列

    我是 RabbitMQ 的新手 我刚刚浏览了 Rabbitmq 文档 路由 我对 Exchange 与路由键之间的关系感到非常困惑 我的要求是 我想动态创建多个队列 请参考下图 前任 假设如果生产者为消费者 c3 创建消息 那么它应该转到
  • 使用 JAXB 从 XML 字符串创建对象

    如何使用下面的代码来解组 XML 字符串并将其映射到下面的 JAXB 对象 JAXBContext jaxbContext JAXBContext newInstance Person class Unmarshaller unmarsha
  • 如何记住自定义 React hook

    const useSomeHook number gt const newNumber setNewNumber useState 0 useEffect gt setNewNumber number 1 number const Some
  • .NET Core 6 - 如何在 Program.cs 中设置 ILogger(log4net) 进行依赖注入

    我已将我的新项目移至 NET核心6但显然 Program 和 Startup cs 文件发生了根本性的变化 我想在每个具有依赖注入的控制器中使用 log4net 但我找不到任何有关登录的教程 NET 核心 6 我尝试过的 builder S
  • 需要为USB外围设备编写驱动程序吗?

    我正在设计一个 USB 外设 它偶尔会连接到 Windows PC 并在每个方向上传输几 KB 的数据 将有一个自定义 PC 应用程序使用专有协议 即 USB 有效负载 来控制数据传输 我在下面的链接中看到微软描述的how为 USB 设备编
  • 使用 Jest/Enzyme 进行测试期间检测 React 中的合成点击

    我正在使用 React 构建一个应用程序 我隐藏了一个文件输入元素
  • 在 R 中为多个因子列创建频率表

    我是 R 新手 我正在为我的工作编写一份关于常用函数 特性语法的单独手册 我的示例数据框如下 x sample lt structure list Q9 A structure c 5L 3L 5L 3L 5L 3L 1L 5L 5L 5L