使用具有多列的 data.table 将宽形状重塑为长形状

2023-11-25

我有一个宽格式的数据框,如下所示。我想使用 data.table Melt 函数将宽形状重塑为长形状。在简单的情况下,我可以拆分两个数据,然后绑定两个数据集。但就我而言,有多个 test(i) testgr(i) 列。但必须有更好、更有效的方法来做到这一点。提前谢谢。

来自 =>

id<-c("106E1258","106E2037","104E1182","105E1248","105E1470","10241247",
"10241703")
yr<-c(2017,2017,2015,2016,2016,2013,2013)
finalgr<-c(72,76,75,71,75,77,78)
test01<-c("R0560","R0066","R0308","R0129","R0354","R0483",  
"R0503")
test01gr<-c(73,74,67,80,64,80,70)
test02<-c("R0660","R0266","R0302","R0139","R0324","R0383"   ,
"R0503")
test02gr<-c(71,54,67,70,68,81,61)
dt<-data.frame(id=id,yr=yr,
finalgr=finalgr,
test01=test01,test01gr=test01gr,
test02=test02,test02gr=test02gr)

to=>

id2<-c("106E1258","106E1258","104E1182","104E1182")
yr2<-c(2017,2017,2015,2015)
finalgr<-c(72,72,75,75)
testid<-c("R0560","R0660","R0308","R0302")
testgr<-c(73,71,67,67)
dt2<-data.frame(id=id2,yr=yr2,finalgr=finalgr,testid=testid,testgr=testgr)

你确实应该使用melt:

setDT(dt)
melt(dt, id.vars = c('id', 'yr', 'finalgr'), 
     measure.vars = list(testid = c('test01', 'test02'),
                         testgr = c('test01gr', 'test02gr')))
#           id   yr finalgr variable testid testgr
#  1: 106E1258 2017      72        1  R0560     73
#  2: 106E2037 2017      76        1  R0066     74
#  3: 104E1182 2015      75        1  R0308     67
#  4: 105E1248 2016      71        1  R0129     80
#  5: 105E1470 2016      75        1  R0354     64
#  6: 10241247 2013      77        1  R0483     80
#  7: 10241703 2013      78        1  R0503     70
#  8: 106E1258 2017      72        2  R0660     71
#  9: 106E2037 2017      76        2  R0266     54
# 10: 104E1182 2015      75        2  R0302     67
# 11: 105E1248 2016      71        2  R0139     70
# 12: 105E1470 2016      75        2  R0324     68
# 13: 10241247 2013      77        2  R0383     81
# 14: 10241703 2013      78        2  R0503     61

如果还有很多test列,您可以使用patterns:

melt(dt, id.vars = c('id', 'yr', 'finalgr'), 
     measure.vars = patterns(testid = 'test[0-9]+$', testgr = 'test[0-9]+gr'))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用具有多列的 data.table 将宽形状重塑为长形状 的相关文章

  • 闪亮的演示文稿 (ioslides):自定义 CSS 和徽标

    我安装了以下内容 RStudio 预览版 版本 0 98 864 2014 年 5 月 24 日 knitr 和shiny 的开发版本 来自 devtools install github c yihui knitr rstudio shi
  • R:变换不规则时间字符串

    我有两个不同的时间序列 来自不同的数据帧 具有不同的不规则格式 但问题是相同的 我只想提取小时 分钟 秒和毫秒 时代系列看起来像这样 ts1 08 27 23 445 08 27 24 280 08 27 25 115 I tried st
  • R:错误消息---包错误:“functionName”未从当前命名空间解析

    我正在使用一个一直运行到 R3 0 的软件包 问题如上所述 当我们调用在 R 2 15 2 中工作的函数时 从 R 3 0 开始我们得到一个错误 Error in C solarspectrum3 as double lon as doub
  • 来自 data.frame 每一列的随机样本

    我想从 a 的每一行中抽取随机样本data frame独立于其他行 这是一个例子 此代码为每行选择相同的列 但我需要为每行独立选择列 library plyr set seed 12345 df1 lt mdply data frame m
  • 根据值的运行总计创建组

    我的数据在一个变量 Y 上是唯一的 另一个变量 Z 告诉我每个 Y 中有多少人 我的问题是我想从这些 Y 和 Z 创建 45 人的组 我的意思是 每当运行总计Z 达到 45 创建一组 然后代码继续创建下一组 我的数据看起来像这样 ID X
  • 在 R 中读取 Stata 13 文件

    有没有办法在 R 中读取 Stata 版本 13 数据集文件 我尝试执行以下操作 gt library foreign gt data read dta TEAdataSTATA dta 但是 我收到一个错误 read dta TEAdat
  • 如何在R中逐行写入文件

    我正在尝试逐行读取 csv 文件 并且仅选择左侧的第二个和第三个单元格以及右侧的第三个单元格 例如 如果这一行中有 17 个单元格 我将选取第 15 个单元格 然后我想合并这 3 个单元格 用逗号分隔 然后将此行写入一个新的 csv 文件
  • 在ggplot2中创建部分虚线

    我正在 R 中创建一个图 并且需要创建一条线 其中某些值是投影 投影用虚线表示 这是代码 df data frame date c rep 2008 2013 by 1 value c 303 407 538 696 881 1094 gg
  • R:在 Shiny 中,如何修复应用于“反应性”类对象的“xtable”没有适用的方法

    我收到此错误 Error in UseMethod xtable no applicable method for xtable applied to an object of class reactive UI R library shi
  • 我可以调整scale_color_brewer的下限吗?

    我已经订购了我想使用 color Brewer 的分类数据 但我很难看到非常低的值 有没有办法去掉这些较低的值或设置范围的下限 ggplot data frame x 1 6 y 10 15 w letters 1 6 aes x y co
  • 分割单个 SpatialPolygons 对象的多边形部分

    在 R 中 我有一个SpatialPolygons包含数百个多边形的对象 即多个多边形 我想分割这个SpatialPolygons对象放入列表中Polygons 即孔应保持连接到父多边形 知道如何做到这一点吗 EDITED 使用以下提供的示
  • 使用 R 中的 tidyverse 重新调整因子和重新排序因子

    我想使用这些功能重新调平 and 重新排序 在我的数据框中 我了解重新调整级别的工作原理 但我不明白为什么我在 data frame 中看不到级别的变化 例如 假设我有鸢尾花数据集 library tidyverse head iris g
  • for 循环与 cor.test 在许多类别上

    我正在尝试在 R 中编写一个循环 它将循环遍历 3 个不同的物种 以计算两个连续变量 Redness 和 VarNormAbund 之间的相关性 我的循环正在运行 但 3 个物种中每一个的输出都是相同的 这让我认为循环卡在第一个物种上 co
  • 如何制作一连串的ggplots并在它们之间绘制箭头?

    对于一个项目 我需要绘制一些图并在它们之间放置箭头作为序列的指示 我想知道我是否可以用 ggplot 来做到这一点 是否可以使用 ggplot2 绘制一个干净的大箭头并将其添加到最终的多重图中 作为示例 我使用此代码来绘制绘图 librar
  • 通过 RCpp 返回 NA

    新手 RCpp 问题在这里 How can I make a NumericVector returnNA到R 例如 假设我有一个 RCpp 代码 它分配NA到向量的第一个元素 RCpp export NumericVector myFun
  • 如何根据查找表匹配多列

    我有以下两个数据框 lookup lt data frame id c A B C price c 1 2 3 results lt data frame price 1 c 2 2 1 price 2 c 3 1 1 我现在想要浏览所有列
  • 使用 dplyr 的 select 引用变量名[重复]

    这个问题在这里已经有答案了 通常我会想要选择变量的子集 其中该子集是函数的结果 在这个简单的例子中 我首先获取与宽度特征相关的所有变量名称 library dplyr library magrittr data iris width var
  • 绘制带有颜色渐变的geom_segment线? (或者还有另一种方法来强调开始与结束吗?)

    我的数据框中有大量行 100 000 的两组纬度和经度变量 我正在尝试绘制一个连接这两组坐标的图 即 从纬度1 经度1 to 纬度2 经度2 使用 geom segment 使用非常低的 alpha 使线条透明 因为线条太多 我想强调这些线
  • 当在另一行中找到元素逗号分隔时合并行

    您好 我有一个数据框 例如 species family Events groups 1 SP1 A 10 22 G1 2 SP1 B 7 G2 3 SP1 C D 4 5 6 1 3 G3 G4 G5 G6 4 SP2 A 22 10 G
  • R - 如何为数据范围内的缺失值绘制条形图零点?

    假设我对 1 到 10 之间的整数的 200 个点有 10 个观察值 mysample sample rep seq 1 10 20 10 我想用条形图绘制它 barplot table mysample barplot https i s

随机推荐

  • 了解 ARKit 中的坐标空间

    我已阅读所有有关的 Apple 指南ARKit 并观看了一个全球开发者大会视频 但我不明白坐标系如何绑定到 一个真实的世界 A device 3D 场景 相互连接 我可以添加一个对象 例如SCNPlane let stripe SCNPla
  • VBA 中的公共对象模块是什么?

    我试图在 VBA 中尽可能接近函数指针 抽象类 我有一堂课叫VerificationManager并验证几个电子表格中的一堆单元格是否匹配 根据所使用的信息和电子表格 这将以不同的方式完成 我希望能够通过使用以下命令在字符串中指定要调用的方
  • 如何从 YouTube 获取频道 ID?

    我正在尝试使用以下方法从我的频道检索数据YouTube 数据 API V3 为此 我需要我的频道 ID 我尝试从我的 YouTube 帐户中找到我的频道 ID 但各种方法都失败了 如果有人给我一个建议 我会非常高兴 这是我用来检索数据的 U
  • $是什么? Powershell 中的别名?

    今天向我展示的脚本中有这样一行 If do some stuff 我从来没有见过美元符号问号别名 之前我无法通过谷歌确定它的用途 当我在 powershell 窗口中执行它时 它通常返回 True 但偶尔返回 False 我的测试似乎表明
  • CMake:包含目录的排序(如何混合基于系统和用户的包含路径?)

    我有一个 CMake 项目 其中包含并链接两个库 例如A and B 实际上它不止两个 其中之一是增强的东西 但这在这里并不重要 两者都位于通过FindSomething cmake 正确 填充标准 CMake 变量的脚本 例如通过添加包含
  • 使用 PHP 客户端库将大文件上传到 google 驱动器

    我正在尝试通过他们的 PHP 客户端库使用 Google Drive API 上传大文件 目前它失败了 因为似乎唯一可用的方法是 简单 上传方法 不幸的是 这需要您将整个文件作为数据加载 并且它达到了我的 php 内存限制 我想知道是否可能
  • 动态转换为 void 指针有实际用途吗?

    在 C 中 T q dynamic cast
  • cmake配置时出错

    抱歉 如果这不是发布此内容的正确位置 但我认为 librocket 论坛早已消亡 我有 Ubuntu 12 04 我按照构建 librocket 的步骤进行操作here 我按照步骤所述使用 cmake 但当我按 c 来配置时出现此错误 CM
  • ion-content 和 ion-footer 有不同的 $scope

    我的 ion content 中有两个输入字段 它们都附加了一个 ng model 然后在我的 ion footer 中 我有一个 ng click 我在其中调用一个函数并传入两个 ng model 当我在 ion content 中进行
  • 反向代理背后的 Springfox Swagger UI

    我已经使用 Swagger API 文档配置了 Spring Boot 应用程序并配置了 Swagger UI 我还在反向代理后面运行后端应用程序 该代理映射来自的所有请求host port api to backend host port
  • 如何在 ASP.NET 中运行后台任务 [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我需要运行一些任务Asp net MVC 每 5 分钟后 我从来没有研究过这样的功能 所以我用谷歌搜索并找到了一些实现此功能的选项 这些是选项here here and here 我已经查
  • Monotouch 中的子类化和重写 UITextField

    我正在尝试将 UITextField 的占位符文本设置为不同的颜色 我了解到我需要子类化并重写 drawPlaceholderInRect 方法 iPhone UITextField 更改占位符文本颜色 void drawPlacehold
  • Google Chrome 扩展程序中的同步调用

    我正在开发 Google Chrome 扩展程序 它必须阻止 重定向一些传出请求 为此 我使用chrome webRequest onBeforeRequest听众 为了决定是否阻止请求 我需要一些有关选项卡请求发送来源的信息 我可以使用它
  • Entity Framework 6 在一个事务中批量更新/删除

    在 EF6 中 我想在一个查询中更新 删除批量数据 我的代码是 using var context dataContextFactory GetContext var result1 from b in context MyTables w
  • Jetty Websocket 空闲超时

    我最近一直在研究带注释的 websocket Jetty API 9 4 5 release 并与它进行了聊天 但是我遇到了一个问题 5 分钟后 我相信这是默认计时器 会话关闭 这不是由于错误 我发现的唯一解决方案是在关闭事件时通知我的套接
  • 当我检查 nginx access.log 时,定期出现未知的 HEAD 请求

    首先我使用的服务器环境 服务器 nginx uwsgi django 应用程序 docker AWS ECS 部署 芹菜 rabbitmq ec2 缓存 redis ec2 日志记录 AWS CloudWatch 日志 瞭望塔第三方应用程序
  • 从 SwiftUI 中的 UIKit 更新 UIViewRepresentable 大小

    我正在嵌入一个高度可变的视图控制器UITextView在父 SwiftUI VStack 中 视图控制器将其框架调整为整个屏幕viewDidLoad and viewDidLayoutSubviews The UITextView仅扩展到其
  • PyCharm 中的 Python3 语法

    我想在 PyCharm 2016 2 中使用 python3 语法 并将解释器配置为使用 python3 5 当我执行代码时 代码运行良好 但 PyCharm 抱怨 python2 不支持 python3 语法 如何让 PyC harm 相
  • 预加载图像后触发事件

    这是我用来预加载图像的代码 我不确定它是否是最好的 我的问题是 如何触发和事件 例如alert 完成加载所有图像后的对话框 var preload a gif b gif c gif var images for i 0 i lt prel
  • 使用具有多列的 data.table 将宽形状重塑为长形状

    我有一个宽格式的数据框 如下所示 我想使用 data table Melt 函数将宽形状重塑为长形状 在简单的情况下 我可以拆分两个数据 然后绑定两个数据集 但就我而言 有多个 test i testgr i 列 但必须有更好 更有效的方法