通过收集多列来整理数据集? [复制]

2023-11-22

我想通过这样操作数据来整理数据集:

age gender  education       previous_comp_exp   tutorial_time   qID.1    time_taken.1   qID.2    time_taken.2   
18  Male    Undergraduate   casual gamer        62.17926        sor9     39.61206       sor8     19.4892
24  Male    Undergraduate   casual gamer        85.01288        sor9     50.92343       sor8     16.15616

变成这样:

age gender  education       previous_comp_exp   tutorial_time   qID      time_taken 
18  Male    Undergraduate   casual gamer        62.17926        sor9     39.61206       
18  Male    Undergraduate   casual gamer        62.17926        sor8     19.4892
24  Male    Undergraduate   casual gamer        85.01288        sor9     50.92343       
24  Male    Undergraduate   casual gamer        85.01288        sor8     16.15616

我尝试过gather(),但我只能让它与一列一起工作,并且我不断收到此警告:

警告消息:测量变量的属性不相同; 他们会被丢弃

有任何想法吗?


With melt from data.table (see ?patterns):

library(data.table)

melt(setDT(df), measure = patterns("^qID", "^time_taken"),
     value.name = c("qID", "time_taken"))

Result:

   age gender     education previous_comp_exp tutorial_time variable  qID time_taken
1:  18   Male Undergraduate      casual_gamer      62.17926        1 sor9   39.61206
2:  24   Male Undergraduate      casual_gamer      85.01288        1 sor9   50.92343
3:  18   Male Undergraduate      casual_gamer      62.17926        2 sor8   19.48920
4:  24   Male Undergraduate      casual_gamer      85.01288        2 sor8   16.15616

or with tidyr:

library(dplyr)
library(tidyr)

df %>%
  gather(variable, value, qID.1:time_taken.2) %>%
  mutate(variable = sub("\\.\\d$", "", variable)) %>%
  group_by(variable) %>%
  mutate(ID = row_number()) %>%
  spread(variable, value, convert = TRUE) %>%
  select(-ID)

Result:

# A tibble: 4 x 7
    age gender     education previous_comp_exp tutorial_time   qID time_taken
  <int> <fctr>        <fctr>            <fctr>         <dbl> <chr>      <dbl>
1    18   Male Undergraduate      casual_gamer      62.17926  sor9   39.61206
2    18   Male Undergraduate      casual_gamer      62.17926  sor8   19.48920
3    24   Male Undergraduate      casual_gamer      85.01288  sor9   50.92343
4    24   Male Undergraduate      casual_gamer      85.01288  sor8   16.15616

Note:

For the tidyr方法,convert=TRUE用于转换time_taken回到numeric,因为它被强制为字符gather编辑与qID列。

Data:

df = structure(list(age = c(18L, 24L), gender = structure(c(1L, 1L
), .Label = "Male", class = "factor"), education = structure(c(1L, 
1L), .Label = "Undergraduate", class = "factor"), previous_comp_exp = structure(c(1L, 
1L), .Label = "casual_gamer", class = "factor"), tutorial_time = c(62.17926, 
85.01288), qID.1 = structure(c(1L, 1L), .Label = "sor9", class = "factor"), 
    time_taken.1 = c(39.61206, 50.92343), qID.2 = structure(c(1L, 
    1L), .Label = "sor8", class = "factor"), time_taken.2 = c(19.4892, 
    16.15616)), .Names = c("age", "gender", "education", "previous_comp_exp", 
"tutorial_time", "qID.1", "time_taken.1", "qID.2", "time_taken.2"
), class = "data.frame", row.names = c(NA, -2L))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过收集多列来整理数据集? [复制] 的相关文章

  • 如何在不循环的情况下添加组ID?

    我有数据框 例如 productid ordernum p1 10 p2 20 p3 30 p4 5 p5 20 p6 8 我想添加另一列 称为 groupid 它将产品按顺序分组在一起 一旦 sum ordernum 达到 30 分配一个
  • 将列表中的列转换为 R 中的数据框

    我有使用 R 创建的以下列表 set seed 326581 X1 rnorm 10 0 1 Y1 rnorm 10 0 2 data data frame X1 Y1 lst lt replicate 100 df smpl lt dat
  • 如何获得属于五分位数的x?

    我正在大学学习使用 R 进行计量经济学项目 所以请原谅我的笨拙 基本上 使用并给出 一个矩阵 股票价格 行 天 列 公司股票价格 另一个矩阵 市值 行 天 列 公司市值 我必须收集第三个矩阵每天观察的属于市值分布第一五分位数的股票价格 然后
  • R.matlab/readMat:readTag(this) 中出错

    我正在尝试使用 R matlab 将 matlab 文件读入 R 但遇到此错误 require R matlab r lt readMat file mat verbose T Trying to read MAT v5 file stre
  • 将 VLMC 拟合到很长的序列

    我正在尝试将 VLMC 拟合到最长序列为 296 个状态的数据集 我这样做如下所示 Load libraries library PST library RCurl library TraMineR Load and transform d
  • R 编程:如何计算数据框中两个单元格之间的差异并将它们保存在新列中

    尝试学习 R 并陷入自相关示例中 我想将 x 的差异与 y 的差异进行回归 我在数据框中有 x 和 y 并且希望将 x2 x1 的差值保存在新列 例如 dx 中 我不知道该怎么做 我拥有的 data1 x y 5 3 8 9 3 1 1 5
  • R 更改小数位且不四舍五入

    gt signif 1 89 digits 2 1 1 9 我想要1 8 这有点笨拙 但它会起作用并保持所有数字 x lt 1 829380 trunc dec lt function x n floor x 10 n 10 n Resul
  • 解析,用三点参数替换

    让我们考虑一个典型的deparse substitute R call f1 lt function u x y print deparse substitute x varU vu varX vx varY vy f1 u varU x
  • 如何按 data.table 中的十分位数组计算统计数据

    我有一个 data table 想按组计算统计数据 R set seed 1 R DT data table a rnorm 100 b rnorm 100 这些组应该定义为 R quantile DT a probs seq 1 9 1
  • R:表格格式

    我有一个包含以下列的 Excel 文件 Column1 Column2 Column3 ab bb 0 5 ab bc 0 1 ab cd 0 7 ab dd 0 8 ac bb 0 2 ac bg 0 8 ac ee 0 8 ac dd
  • 如何在R中同时对三个字段进行网络分析

    如何在 R 中同时对三个字段进行网络分析 下面是示例数据以及desired output在最后一栏中 df lt data frame stringsAsFactors FALSE id 1 c ABC ABC BCD CDE DEF EF
  • 使用 dplyr::filter 的整洁方式是什么?

    使用下面的函数调用foo c b 输出以内联方式显示 正确的写作方式是什么df gt filter x gt x 我已经包含了一个使用的示例mutate以整洁的风格与之对比filter foo lt function variables x
  • 如何匹配 R 中的所有匹配项?

    我有 1000 个名字的列表 说A 我还有另外 5 个名字的清单 说B 我想找出这5个名字出现在1000个号码列表中的第几行 例如 Amy 在 A 中可以出现 25 次 B 里有艾米 我想知道 Amy 出现在 A 中的哪些行 我以前使用过
  • ggplot2、R 中的单条形条形图

    我有以下数据和代码 gt ddf var1 var2 1 aa 73 2 bb 18 3 cc 9 gt gt dput ddf structure list var1 c aa bb cc var2 c 73L 18L 9L Names
  • 检查单词是否存在于英语词典 r 中

    我正在对多个进行一些文本分析resume生成一个wordcloud using wordcloud包装连同tm用于在 R 中预处理文档语料库的包 我面临的问题是 检查语料库中的单词是否具有某种含义 即 它属于英语词典 如何一起挖掘 处理多份
  • 如何匹配R中列之间的多个对应值

    我有一个结构如下的数据框 ID Value1 Value2 1 a d g f 12 14 15 9 2 b c e 5 18 20 3 h i j 6 7 25 所以我有一个 ID 和两个值 对于值 1 有多个对应于值 2 的选项 我想最
  • R - Quantstart:多种股票的测试策略

    我正在使用一些指标构建基本交易策略 我的问题是我希望它在多个股票上运行 而不必指定我想要测试的每个单独的股票 目前我可以使用向量一次获取多个符号 如下所示 Get Shares from Yahoo Finance Stocks lt AS
  • ggplot2 可视化/显示中的地图错误?

    正如您在下面看到的 我使用 ggplots 制作的地图上存在一个奇怪的显示问题 任何投影似乎都会发生同样的问题 这是代码 仅包maps and ggplot2需要 mapWorld lt borders world colour gray5
  • 根据R中的前一行和当前行按组计算

    我可以根据 R 中的前一行和当前行进行计算 对于此数据框 df A B 1 2 2 2 2 3 3 4 5 5 B2 A2 0 5 B1 我可以使用这段代码来计算这个函数 for i in 2 nrow df B i lt 1 2 B i
  • 在 Ubuntu Lucid 中从二进制安装 R 包

    我已经使用以下命令在 Ubuntu Lucid 中安装了 R sudo aptitude 安装 r base 当我尝试 install packages 时 它似乎会下载源代码 然后花费很长时间来编译它 我怎样才能像我在 Windows 上

随机推荐

  • 如何按应用程序过滤Android logcat? [复制]

    这个问题在这里已经有答案了 如何按应用程序过滤 Android logcat 输出 我需要这个 因为当我连接设备时 由于来自其他进程的垃圾邮件 我找不到我想要的输出 编辑 原文如下 当 Android Studio 还不存在时 但如果你想过
  • Fragment 和 FragmentStatePagerAdapter 内带有 ViewPager 的 Fragment 会导致异常(带有完整示例)

    我有一个带有 ViewPager 的简单片段 我正在使用最新的支持库 v4 rev18 如果我第一次显示子片段 一切正常 如果我返回并再次显示它 应用程序会崩溃 并出现以下异常 我有一个完整的示例 显示何时发生以下异常 java lang
  • Javascript 提供哪些调试日志记录工具? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我想创建一个 通用 调试日
  • Func<> 与委托和 lambda 表达式之间的区别[重复]

    这个问题在这里已经有答案了 在深入了解 C 的更高级功能时 我遇到了一些代码 但我并不完全知道其中的区别 这是关于这两行 Func
  • 关闭主窗体

    我正在使用 C Windows 表单开发一个简单的应用程序 主窗体打开另一个窗体 但我不想要这两种窗体 我希望当第二个表单打开时第一个表单关闭 由于第一种形式主要使用 this Close 显示第二个表格后将关闭两者 所以我用这个代替 pr
  • 在 C/C++ 中向指针添加 1 个字节的正确方法是什么?

    我现在正在使用这段代码将指针移动 1 个字节 但我感 觉有些不清楚 int a int malloc sizeof int void b char a 1 char是 1 个字节 但未定义用于字节操作目的 我相信还有另一种方法可以做到这一点
  • 有没有办法在 Azure DevOps CI/CD 构建管道中设置日期和时间(时区)

    我在 CI CD 构建管道中运行了自动化测试 但 DevOps 中的时间是 UTC 我的断言测试检查本地时间 有没有办法在我的构建管道中设置时区 使用 Powershell 您可以执行以下操作 Get TimeZone Set TimeZo
  • 无法将数据库状态与会话同步

    无法将数据库状态与会话同步 org hibernate exception GenericJDBCException 无法更新 我在尝试更新数据库时收到此错误 我的数据库中没有定义唯一键 但 id 字段已定义为主键 这是更新函数的代码 pu
  • Chrome 打印预览不加载 @media 仅打印字体

    我想要一个与屏幕不同的打印字体 不幸的是 Google Chrome 打印预览 适用于其他浏览器 不会加载字体 也不会显示文本 但如果您第二次尝试 字体将被加载 然后 Google Chrome 打印预览将显示文本 这是一个可以重现问题的小
  • 从字符串中删除字符及其后的所有内容

    我知道要替换字符串的字符串 但只有当我确切知道要删除的内容时 这才有效 如果我有一个如下所示的字符串 嗨 那里 这是一个测试 功能 嗨 那里 如何删除 feature 及其后的所有内容 任何帮助将不胜感激 提前致谢 编辑 如果绝对需要使用
  • 从 NodeJS 中的 keycloak 会话获取用户名

    有没有类似的东西 request getUserPrincipal getName Java 在Node中我们使用时获取用户名连接钥匙斗篷使用快速中间件 我也遇到了这个问题 我确实深入研究了中间件代码并试图找到类似的东西 事实证明 requ
  • CSS 导入字体

    我需要在网站上使用 4 种字体 并且我的网站文件夹中有这些文件 Baskerville ttc BellGothicstd Black otf BellGothicstd Bold otf JennaSue ttf 我尝试使用 Import
  • 如何解析 shell 脚本中的符号链接

    给定绝对或相对路径 在类 Unix 系统中 我想在解析任何中间符号链接后确定目标的完整路径 同时解决 用户名符号的奖励积分 如果目标是一个目录 则可以 chdir 进入该目录 然后调用 getcwd 但我真的想从 shell 脚本中执行此操
  • 声纳违规:安全性 - 数组直接存储

    存在声纳违规 声纳违规 安全性 数组直接存储 public void setMyArray String myArray this myArray myArray 解决方案 public void setMyArray String new
  • 如何在 React Native 中抑制由于第三方 PropTypes 库而产生的警告

    在 React Native 中使用样式表时 我收到了大量警告 如下图所示 iOS 模拟器上的警告 怎么抑制呢 无法禁用特定组件的警告 但您可以在应用程序中禁用不同类型的警告 要禁用所有警告 请使用 console disableYello
  • 外部硬盘上的 MySQL 表

    我有大量文本数据需要导入MySQL 我在 MacBook 上执行此操作 但没有足够的空间 因此我想将其存储在外部硬盘驱动器中 目前我并不真正关心速度 这只是为了测试 最好的方法是什么 在外部硬盘上安装 MySQL 这在 Mac 上可行吗 在
  • 动态设置局部变量[重复]

    这个问题在这里已经有答案了 如何在Python中动态设置局部变量 变量名是动态的 与已发布的其他答案相反 您无法修改locals 直接并期望它能起作用 gt gt gt def foo lcl locals lcl xyz 42 print
  • UserPrincipal.FindByIdentity() 始终返回 null

    我正在使用 LdapAuthentication 将用户登录到 Active Directory 我想找到该用户所属的所有组 我正在使用以下代码 string adPath LDAP OU HR Controlled Users OU Al
  • 用 Perl 读取精美的文件

    我正在寻找在 Perl 中读取文件的有效方法 并发现了这一非常有趣的行 my text do local ARGV file lt gt 我的问题是 这到底是如何运作的 通常在读取您设置的文件时 undef 但我不明白这是如何做到的 事实证
  • 通过收集多列来整理数据集? [复制]

    这个问题在这里已经有答案了 我想通过这样操作数据来整理数据集 age gender education previous comp exp tutorial time qID 1 time taken 1 qID 2 time taken