R 以相似字符串开头的不同列组的行总和

2024-01-11

我对 R 还很陌生,这是我第一次敢在这里提问。

我正在使用具有李克特量表的数据集,并且我想对不同组的列进行求和,这些列共享其名称中的第一个字符串。

下面我构建了一个只有 2 行的数据框来说明我遵循的方法,尽管我希望收到有关如何编写更有效的方法的反馈。

df <- as.data.frame(rbind(rep(sample(1:5),4),rep(sample(1:5),4)))

var.names <- c("emp_1","emp_2","emp_3","emp_4","sat_1","sat_2"
           ,"sat_3","res_1","res_2","res_3","res_4","com_1",
           "com_2","com_3","com_4","com_5","cap_1","cap_2",
           "cap_3","cap_4")

names(df) <- var.names

因此,我所做的就是使用 grep 函数,以便能够对以某些字符串开头的指定变量的行进行求和,并将它们存储在一个新变量中。但我必须为每个变量编写一行新代码。

df$emp_t <- rowSums(df[, grep("\\bemp.", names(df))])
df$sat_t <- rowSums(df[, grep("\\bsat.", names(df))])
df$res_t <- rowSums(df[, grep("\\bres.", names(df))])
df$com_t <- rowSums(df[, grep("\\bcom.", names(df))])
df$cap_t <- rowSums(df[, grep("\\bcap.", names(df))])

但是数据集中还有很多变量,我想知道是否有一种方法可以仅用一行代码来完成此操作。例如,某种方式将以相同字符串开头的变量分组在一起,然后应用行函数。

提前致谢!


一种可能的解决方案是转置df并使用基数 R 计算正确列的总和rowsum函数(使用set.seed(123))

cbind(df, t(rowsum(t(df), sub("_.*", "_t", names(df)))))
#   emp_1 emp_2 emp_3 emp_4 sat_1 sat_2 sat_3 res_1 res_2 res_3 res_4 com_1 com_2 com_3 com_4 com_5 cap_1 cap_2 cap_3 cap_4 cap_t
# 1     2     4     5     3     1     2     4     5     3     1     2     4     5     3     1     2     4     5     3     1    13
# 2     1     3     4     2     5     1     3     4     2     5     1     3     4     2     5     1     3     4     2     5    14
#   com_t emp_t res_t sat_t
# 1    15    14    11     7
# 2    15    10    12     9
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R 以相似字符串开头的不同列组的行总和 的相关文章

随机推荐

  • C# 模拟键盘输入

    我需要知道如何模拟按键的键盘输入W S A D 我用过SendKeys没有任何效果以及InputSimulator库没有修复 我想做的是让游戏 战地 自然选择等较新的 FPS 游戏 等应用程序将这些模拟按键注册为真实的按键 我正在尝试制作一
  • 如何从 qml 启动 Qthread?

    我需要立即启动并停止 Qml 文件中的 QThread 扩展类 有什么解决办法吗 这是我的课 class SerialManager public QThread Q OBJECT public CircularList
  • List 和 Set 的性能和内存分配比较

    我想知道List和Set在性能 内存分配和可用性方面的比较 如果我没有任何要求保持对象列表中的唯一性 也不需要维护插入顺序 我可以互换使用ArrayList和SortedSet HashSet吗 直接使用 Collections 类而不是列
  • Delphi onshow 主窗体/模态窗体

    我有一个项目 有一个主窗体和一些其他窗体 当应用程序加载时 它需要执行一些任务并在主窗体顶部以模式形式显示结果 我遇到的问题是 如果我调用函数来执行任务 创建并在主窗体 onshow 事件中显示模态窗体 则模态窗体会出现 但主窗体不会出现
  • Bootstrap 3.3.2 中的媒体列表和文本溢出

    我最近将我的项目从 Bootstrap 3 2 x 更新到 3 3 2 最后一个版本 我发现与媒体对象 http getbootstrap com components media元素 我想在媒体标题中使用特殊的 less mixin te
  • WebViewCoreThre 中的 Android 致命信号 11 (SIGSEGV)

    使用东芝 AT300SE 101 v4 1 1 与其他平板电脑兼容 和一个简单的应用程序 该应用程序因错误而终止 06 19 11 02 12 092 A libc 20030 Fatal signal 11 SIGSEGV at 0x00
  • 如何在 python 中使用 C 扩展来绕过 GIL

    我想在 Python 中跨多个内核运行一个 cpu 密集型程序 并试图找出如何编写 C 扩展来做到这一点 有这方面的代码示例或教程吗 您已经可以将一个 Python 程序分解为多个进程 操作系统已经将您的进程分配给所有核心 Do this
  • 如何在位图上绘制整个表单?

    我想在画布上绘制整个表单 包括其标题栏和框架TBitmap object GetFormImage很酷 但是有两个问题 它也不粉刷窗框 当表单隐藏时它不起作用 您有解决这些问题的想法吗 访问非客户区的关键是GetWindowDC http
  • jUnit不同情况下相同的异常

    我正在为构造函数编写 jUnit 测试 该构造函数解析字符串 然后检查许多内容 当数据错误时 对于每件事 都会抛出一些带有不同消息的 IllegalArgumentException 所以我想为它编写测试 但是我如何识别抛出了什么错误 我该
  • 我如何可以为 UINavigationBar 而不是 UITabBar 的条色调颜色变化设置动画?

    我正在我的应用程序中实现一个主题 但遇到了一个奇怪的错误 功能 由于某些奇怪的原因 我无法使用UIView animate在我的自定义 UITabBarController 类中 对 UITabBar 的颜色变化进行动画处理 但相同的代码在
  • MySQL 在一个查询中获取 Mindate 和 Maxdate

    如何仅使用一个sql查询获取mysql中的最大日期和最小日期 SELECT MIN date col MAX date col FROM table name
  • 持有多个锁的线程进入 wait() 状态。它会释放所有持有锁吗?

    我编写了这个程序来检查线程 t1 是否持有两个不同对象的锁 Lock class 和 MyThread class 使用 MyThread class wait 在 MyThread class 实例上进入等待模式 它不会释放 Lock c
  • 使用 v4 Fragments API 实现 ActionBar 选项卡

    我的应用程序当前使用 Fragments v4 兼容性包来支持 Android 版本一直到 1 6 这意味着我的所有片段都继承自兼容包的版本Fragment 我目前正在尝试重新设计应用程序的部分内容以利用 Honeycomb 功能 例如Ac
  • 使用 Kendo Grid 获取数据时日期格式发生变化

    我正在尝试使用一些参数获取数据并将其加载到剑道网格中 但是当我使用日期参数时 日期格式正在改变 因此在服务器端显示错误的日期 作为我使用的参数的示例 new Date April 01 2016 但在服务器端它变成 04 01 2016 这
  • Internet Explorer toDataURL() 替代方案?

    所以我需要保存在a上绘制的图像数据
  • C libm.a 编译时不需要链接

    我试图编译一个源文件 其中包括
  • RegEx:如果lookbehind显示小写,则删除换行符

    我正在 Notepad 中执行 CTRL H 查找和替换 我想找到所有换行符后跟小写字符 以便用空格字符替换它们 从而删除文本中不需要的换行符 Find r n A Z 0 9 代替 在此插入空格字符 确保您选择了 相符 and 正则表达式
  • boost是如何实现信号和槽的?

    要继续另一个问题 我们问这个 Boost是如何实现信号 槽机制的 See 信号和槽是如何在底层实现的 https stackoverflow com questions 1406940 how signal and slots are im
  • 什么是快照构建/源版本?

    什么是快照构建 源版本 具体到 JDK 7 快照版本供用户在平台仍在开发时下载和查看 http www oracle com technetwork java javase downloads ea jsp 142245 html http
  • R 以相似字符串开头的不同列组的行总和

    我对 R 还很陌生 这是我第一次敢在这里提问 我正在使用具有李克特量表的数据集 并且我想对不同组的列进行求和 这些列共享其名称中的第一个字符串 下面我构建了一个只有 2 行的数据框来说明我遵循的方法 尽管我希望收到有关如何编写更有效的方法的