如何将 data.table 融入人年中,并将年份后缀作为变量列?

2024-03-28

我有一个 data.table 看起来像:

      PID  vara90  vara91  vara92 vara93 varb90  varb91  varb92 varb93
1:    1    2       1       45     77     "Str1"  "Str3"  "Str3" "Str1"
2:    2    6       1       5      3      "Str2"  "Str5"  "Str4" "Str1"
3:    3    1       1       56     65     "Str3"  "Str2"  "Str6" "Str1"
4:    4    8       1       45     9      "Str1"  "Str8"  "Str3" "Str2"
5:    5    12      3       45     44     "Str4"  "Str1"  "Str8" "Str3"
6:    6    2       6       78     1      "Str5"  "Str3"  "Str1" "Str4"
7:    7    2       3       45     23     "Str2"  "Str1"  "Str3" "Str1"
8:    8    2       1       44     87     "Str1"  "Str3"  "Str1" "Str4"

并希望将其转换为具有以下形状的长格式:

      PID  year  vara      varb
1:    1    90       2       "Str1"  
2:    1    91       1       "Str3"
3:    1    92       45      "Str3"
.
.
.

我在用:

melt(df, id.vars("PID", measure=patterns("^vara","^varb"), value.name=c("vara","varb"),variable.name="year)

这让我得到了我想要的,除了year列由 1 到 3 的数字填充。有没有办法让年份列由变量名称中的年份后缀填充?我可以用基地做到这一点reshapetidyr,但我有一个非常大的数据集,需要 data.table 的内存效率。


在 Frank 链接的 FR 实现之前,我们必须手动设置级别(variable col is factor):

ans = melt(dt, measure = patterns("^vara", "^varb"),
              value.name = c("vara", "varb"), variable.name = "year")
setattr(ans$year, 'levels', gsub("vara", "", names(dt)[2:5]))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 data.table 融入人年中,并将年份后缀作为变量列? 的相关文章

  • 带频率图的 R 热图类型图

    I am trying to create a plot like the following 我已经使用 ggplot2 中的 geom tile 粗略地得到了左侧图 但我无法弄清楚如何生成右侧图以及如何将两个图放在一起 Example
  • R 中的匹配和计数字符串(DNA 的 k 聚体)

    我有一个字符串列表 DNA 序列 包括 A T C G 我想找到所有匹配项并插入到表中 该表的列都是这些 DNA 字母表的所有可能组合 4 k k 是每个匹配项的长度 K mer 必须由用户指定 行代表 DNA 字母表的数量在列表中按顺序匹
  • R 中第三维的平均值

    R中是否有任何快速方法或内置函数来计算基于第三维的平均值 例如我的数组是 1 1 2 1 1 3 2 2 4 2 1 2 1 11 13 2 12 14 3 1 2 1 21 23 2 22 24 我的输出是 1 2 1 mean 1 11
  • Leaflet Map - 第二个多边形使第一层不可点击

    我正在制作美国社区调查数据地图 目前我有一个主要层 如下所示plotMerge incomePerCapita 它运作良好 有一个完全充实的弹出窗口 图像等等 当我添加第二层以提供县和地区边界时 区域边界变得不可单击 似乎被新层掩盖了 如果
  • 在开发模式下安装包(R源未编译成Rdb)

    我需要修改R代码在一个R具有 Fortran 绑定的包 当我安装软件包时 我看到存储库目录没有源代码 但是 Rdb而是二进制文件 我看了看devtools包 但我仍然不清楚如何在不编译 R 源部分的情况下安装该包 类似于 python py
  • R2WinBUGS - 使用模拟数据进行逻辑回归

    我只是想知道是否有人有一些使用 R2WinBUGS 包来运行逻辑回归的 R 代码 理想情况下使用模拟数据来生成 真相 和两个连续协变量 Thanks 基督教 PS 生成人工数据 一维情况 并通过 r2winbugs 运行 winbugs 的
  • 使用 R 中绘制的标准误差创建条形图

    我试图找到在 R 中创建条形图并显示标准错误的最佳方法 我看过其他文章 但我无法弄清楚与我自己的数据一起使用的代码 之前没有使用过 ggplot 这似乎是最常用的方法 而 barplot 不与数据框合作 我需要在两种情况下使用它 我为此创建
  • 两组点之间的距离[重复]

    这个问题在这里已经有答案了 因此 在查看了 stackoverflow 上提出的各种问题后 我仍然无法理解 R 中的 dist 函数 甚至无法理解一般的距离矩阵 所以我有两个带有 xy 坐标的数据框 df1 lt data frame x
  • R 中的优化函数可以接受目标、梯度和粗麻布吗?

    我有一个想要优化的复杂目标函数 优化问题需要相当长的时间来优化 幸运的是 我确实有可用的函数的梯度和粗麻布 R 中是否有一个优化包可以接受所有这三个输入 optim 类不接受 Hessian 矩阵 我已经扫描了用于优化的 CRAN 任务页面
  • 如何将美国人口普查局的州级形状文件合并为全国性形状

    人口普查局不提供全国范围内公共使用微数据区域的形状文件 美国社区调查中可用的最小地理区域 我尝试用几种不同的方法将它们结合起来 但即使是消除重复标识符的方法一旦到达加利福尼亚州也会崩溃 我是在做一些愚蠢的事情还是需要一个困难的解决方法 下面
  • 与 data.table 合并时防止重复列

    我有两个数据表 它们的列名部分相似 dfA lt read table text A B C D E F G iso year matchcode 1 0 1 1 1 0 1 0 NLD 2010 NLD2010 2 1 0 0 0 1 0
  • R:使用 RGDAL 和 RASTER 包时抛出错误

    给所有可能相关的人 这是源代码 GRA D1 lt raster files 1 Sets up an empty output raster GRA D1 lt writeStart GRA D1 filename GRA D1 tif
  • R 语言 - 等待用户使用 scan 或 readline 输入

    我试图让用户输入一些关键字进行查询 在我的脚本中我使用了 scan 或 readline 我使用 R 嵌入脚本编辑器 Windows 进行了尝试 但是当我执行代码时 它使用我的下一行脚本作为标准输入 这是我的 部分 脚本 keywords
  • 如何在 R 中执行随机森林/交叉验证

    我无法找到对我尝试生成的回归随机森林模型执行交叉验证的方法 因此 我有一个数据集 其中包含 1664 个解释变量 不同的化学性质 和一个响应变量 保留时间 我正在尝试生成一个回归随机森林模型 以便能够预测给定保留时间的物质的化学性质 ID
  • 如何在 conda 中静音或抑制 gfortran (或 clang?)后端?

    我一直致力于构建一个非常特殊的 conda 环境 专为python and R与串扰使用rpy2 我想出的方法可以安装正确的R包如下 install main environment sh now date T echo Start Tim
  • 当按多列分组时,如何命名 dplyr 中的 group_split 列表

    我在 dplyr 中使用 group split 在分割了多个列后 我很难命名列表 当我们按一列分组时 我知道该怎么做here https stackoverflow com questions 57107721 how to name t
  • 从 data.frame 创建新列

    我有一个长格式的数据集 其中测量 时间 嵌套在 Networkpartners NP 中 而 Networkpartners NP 又嵌套在人员 ID 中 下面是它的示例 真实数据集有数千行 ID NP Time Outcome 1 11
  • 使用facet时ggplot2控制每行的面板数量?

    Is it possible to control the number of panels per row in a ggplot I can only get an equal number of panels on each row
  • 在knitr中打印漂亮的交叉表

    我想要的是使用 R Markdown 和 knit 从 RStudio 打印漂亮的交叉表 无论是在 pdf 文件中 还是在 html 文件中 我怀疑我错过了一些非常明显的东西 因为我不敢相信这是如此困难 我使用 xtabs 或 ftable
  • 如何在ggplot2中使用希腊符号?

    我的类别需要用希腊字母命名 我在用ggplot2 并且它与数据配合得很好 不幸的是 我无法弄清楚如何将这些希腊符号放在 x 轴上 在刻度线处 并使它们出现在图例中 有什么办法可以做到吗 更新 我看了一下link https github c

随机推荐

  • 如何将变量设为特征的私有变量?

    我想在一个类中多次重用某个功能 此功能依赖于私有变量 trait Address private address public function getAddress return this gt address public functi
  • ASP/ASP.NET 短标签的名称

    有没有一个特定的名字 Scott Gu 将这些称为 代码块 这就是我的看法 http weblogs asp net scottgu archive 2010 04 06 new lt gt syntax for html encoding
  • CSS float 将带有换行文本的 div 折叠到所需的最小值

    示例图片 And the 代码位于 JSBIN http jsbin com ucamOW 1 情况是 我正在尝试创建一个带有标签的复选框列表 每个复选框旁边都有一个 信息图标 这个想法是 如果您单击标签 它将触发复选框 正如它应该的那样
  • 出现故事板之前的选项卡栏项目标题

    我的应用程序从一个有 5 个选项卡的选项卡栏控制器开始 一开始 第一个出现了它的名字 但其他四个没有名字 直到我点击它们 然后根据用户使用的语言显示名称 如何在选项卡栏出现之前设置选项卡的名称 我正在使用故事板 当所有其余的事情都通过情节提
  • 从没有实例的类中获取字段的名称

    因此 我使用以下实用程序从类的实例中获取字段 属性的名称 public static string FieldName
  • 如何避免在 getView() 中设置内联 onClickListener

    我有带有自定义适配器的 ListView 每行都包含可点击的按钮和文本 目前 onClickListeners 已在主体中设置getView 这是一个非常疯狂的想法 因为这个方法被频繁调用 在每个 onClick 函数中 我需要访问私有数据
  • 意外的未定义引用

    我收到未定义的引用错误 不知道原因 所以我有 2 个创建静态库的文件 keyboard input c keyboard input h 这是 h 文件的内容 ifndef MOD KBINPUT define MOD KBINPUT in
  • TensorFlow 是否使用 GPU 上的所有硬件?

    The 英伟达 GP100 https images nvidia com content pdf tesla whitepaper pascal architecture whitepaper pdf有30个TPC电路和240个 纹理单元
  • 如何使用非 rake 参数调用 rake

    我有一个创建图表的 rake 任务 task diagram do rake erd filetype dot disconnected true end 这个任务的执行速度相当慢 我猜这是因为在嵌套的 rake invoke 语句中 整个
  • MAMP SSL 错误:“错误:14077410:SSL 例程:SSL23_GET_SERVER_HELLO:sslv3 警报握手失败”

    我正在 OS X Yosemite 上使用 MAMP 在本地计算机上开发一个网站 该网站是一个在 HTTPS 上运行的 API 的客户端应用程序 当我尝试从 PHP 调用 API 时 不断收到此错误 error 14077410 SSL r
  • 如何在 Xamarin 中填充表视图?

    我正在尝试将 C Windows 应用程序移植到 Mac 但我一直试图用一堆字符串填充表视图 表视图似乎有两列 这对我来说很好 但我不知道如何访问单元格 行 列或添加项目 在 Windows 中 我做了类似的事情 foreach var i
  • 在 macOS 上打印可执行文件的 rpath

    我想改变rpath一个可执行文件使用install name tool 但我不明白是什么rpath就是现在 install name tool既需要新的又需要旧的rpath是在命令行上给出的 我可以使用什么命令来打印rpathmacOS 下
  • 使用 ExclusiveStartKey 选项进行 AWS Dynamodb 扫描

    对于我最近的项目 我试图从 dynamodb 获取数据 除了我在参数中添加 exclusiveStartKey 选项之外 似乎一切正常 下面是我的代码 function scanDataFromDB datetime let params
  • PHP:标题后代码的效果(“位置:abc.html”)

    可以说 代码看起来像这样 if test header Location somefile html some PHP code header Location anotherfile html Is 一些 PHP 代码 上面执行了吗 如果
  • 如何从 PrimeFaces p:dataExporter 自定义 PDF,例如页面大小

    我想将 PDF 页面尺寸更改为 A4景观导出表时 但无论我做什么都无法完成它 这是我的代码
  • IE/Edge 不应用转换:转换为表格行

    当添加 CSS 转换时 例如transform translate 0px 45px 对于表行 Internet Explorer 已测试 10 和 11 和 Microsoft Edge 无法正确显示转换 使用一些简单的代码作为示例 ta
  • 使用 Python/Django 上传大文件

    我想知道通过使用 Django Python 的 Web 应用程序上传大约 4GB 大小的文件是否有任何影响 我记得过去使用 Java 进行流式上传是首选方法 但现在仍然如此吗 或者使用 Django Python 这样做是否完全安全 如果
  • SwiftUI 拖动手势坐标

    我正在尝试向我正在编写的应用程序添加评级系统 我的方法不太优雅 使用Stepper 如果可能的话 我想要一种交互式拖动方式来填充星级 我不确定是否DragGesture是我正在寻找的 这足够吗 另外 我不确定如何将坐标转换为正确的宽度以填充
  • 在活动之间传递媒体播放器对象

    我想知道如何在活动之间传递 MediaPlayer 对象 以便我可以在整个应用程序中保持恒定的声音播放 你不 通过MediaPlayer活动之间的对象 您需要访问MediaPlayer从一个习惯Service http developer
  • 如何将 data.table 融入人年中,并将年份后缀作为变量列?

    我有一个 data table 看起来像 PID vara90 vara91 vara92 vara93 varb90 varb91 varb92 varb93 1 1 2 1 45 77 Str1 Str3 Str3 Str1 2 2 6