R:熔化和铸造

2023-11-29

我有一个这样的数据集:

CASE_ID = c("C1","C1", "C2","C2", "C2", "C3", "C4") 
PERSON_ID = c(1,0,7,8,1,20,7) 
PERSON_DIVISION = c("Zone 1", "NA", "Zone 1", "Zone 3", "Zone 1", "Zone 5", "Zone 1") 
df <- data.frame(CASE_ID, PERSON_ID, PERSON_DIVISION)  
df

结果是:

CASE_ID PERSON_ID PERSON_DIVISION
1      C1         1          Zone 1
2      C1         0              NA
3      C2         7          Zone 1
4      C2         8          Zone 3
5      C2         1          Zone 1
6      C3        20          Zone 5
7      C4         7          Zone 1

我想把它改成:

CASE_ID P1_ID  P2_ID  P3_ID  P1_Division  P2_Division   P3_Division
1       1       0     NA        Zone 1      NA           NA
2       7       8     1         Zone 1      Zone 3      Zone 1
3       20      NA    NA        Zone 5      NA          NA
4       7       NA    NA        Zone 1      NA          NA

到目前为止,我的方法是融合数据和后来的 Dcast:

e <- melt(df)

dcast(e, CASE_ID  ~ PERSON_DIVISION + variable)

但我没有得到所需的输出,而是得到:

CASE_ID NA_PERSON_ID Zone 1_PERSON_ID Zone 3_PERSON_ID Zone 5_PERSON_ID
 1      C1            1                1                0                0
 2      C2            0                2                1                0
 3      C3            0                0                0                1
 4      C4            0                1                0                0

这里有两个问题:

  1. 您的数据已经是长格式,但您有two值列。最新版本data.table支持多个值变量dcast().
  2. 每个组中都需要唯一的行 ID。否则,dcast()将尝试聚合重复项(使用length()默认情况下,这解释了你得到的输出)。

请尝试

library(data.table)   # version 1.10.4 used here
# coerce to data.table, add unique row numbers for each group
setDT(df)[, rn := rowid(CASE_ID)]
# dcast with multiple value vars
dcast(df, CASE_ID ~ rn, value.var = list("PERSON_ID", "PERSON_DIVISION"))
#   CASE_ID PERSON_ID_1 PERSON_ID_2 PERSON_ID_3 PERSON_DIVISION_1 PERSON_DIVISION_2 PERSON_DIVISION_3
#1:      C1           1           0          NA            Zone 1                NA                NA
#2:      C2           7           8           1            Zone 1            Zone 3            Zone 1
#3:      C3          20          NA          NA            Zone 5                NA                NA
#4:      C4           7          NA          NA            Zone 1                NA                NA

这可以更简洁地写成一行:

dcast(setDT(df), CASE_ID ~ rowid(CASE_ID), value.var = list("PERSON_ID", "PERSON_DIVISION"))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R:熔化和铸造 的相关文章

  • 如何删除箱线图上的刻度线

    我试图从箱线图中删除 x 轴刻度线 但保留与刻度线关联的标签 这在基础 R 中可能吗 colors lt c lightskyblue3 gray78 gold1 wheat1 boxplot avgscore module data mi
  • 纵向序列数据的三次样条方法?

    我有一个串行数据 格式如下 time milk Animal ID 30 25 6 1 31 27 2 1 32 24 4 1 33 17 4 1 34 33 6 1 35 25 4 1 33 29 4 2 34 25 4 2 35 24
  • 将数据框中的每个 x 个字符拆分为字符串

    我知道这里有一些关于每隔一段时间分割一个字符串的答案nth字符 例如this one https stackoverflow com questions 23208490 split each character in r and this
  • R 中的快速 QR 分解

    我有大量矩阵 需要对其执行 QR 分解并存储生成的 Q 矩阵 进行归一化 以便 R 矩阵在其对角线上具有正数 除了使用之外还有其他方法吗qr 功能 这是工作示例 system time Parameters for the matrix t
  • pyomo + 网状错误 6 句柄无效

    我正在尝试运行pyomo优化 我收到错误消息 Error 6 The handle is invalid 不知道如何解释它 环顾四周似乎与特权有关 但我不太明白 在下面找到完整的错误跟踪以及重现它的玩具示例 完整的错误跟踪 py run f
  • R独特的列或行与NA无可比拟

    有谁知道如果incomparables的论证unique or duplicated 曾经被实施过incomparables FALSE 也许我不明白它应该如何工作 无论如何 我正在寻找一个巧妙的解决方案 以仅保留与另一列相同的唯一列 或行
  • ggplot2 geom_密度和geom_histogram在一个图中

    如何制作一个所有条形加起来为 1 的直方图 并在适合的上方添加一个密度层 set seed 1234 df lt data frame sex factor rep c F M each 200 weight round c rnorm 2
  • 只读取选定的列

    谁能告诉我如何仅读取下面每年数据的前 6 个月 7 列 例如使用read table Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec 2009 41 27 25 31 31 39 2
  • 将阴影区域添加到五分位数之间的直方图中

    All 我有一个包含 2 个直方图的图表 其中我还绘制了代表第 20 40 60 和 80 个百分位数的线条 下面的代码使用虚拟数据重现了类似的图表 data lt rbind data frame x rnorm 1000 0 1 g o
  • 更改闪亮 R 中的默认浏览器

    我在 RStudio 中使用 01 hello 虽然在 IE 中默认打开程序时它不会显示直方图 但即使在 Chrome 中 滑块也不起作用 我无法滑动条形图并看到直方图中的变化 如何更改 R 中的默认浏览器 以便闪亮启动 Chrome 而不
  • 在 r 中的 group_by 之后建模后取消列表列的嵌套

    我想对所有组进行线性回归group by 将模型系数保存在列表列中 然后使用 unnest 扩展列表列 这里我用的是mtcars以数据集为例 注 我想用do here becausebroom tidy 不适用于所有型号 mtcars gt
  • 旋转 Markdown 的表格 pdf 输出

    我想将 pdf 上的表格输出旋转 90 度 我正在使用 Markdown 生成报告并kable循环显示表格 如果可以的话我想继续使用kable因为还有很多其他依赖于它的东西我没有包含在这个 MWE 中 这是一个简单的例子 使用iris数据集
  • 所有 x 轴标签未以 45 度显示

    I m having the code as like below But I m not getting all the x axis labels and it is not displaying in 45 degree when I
  • R 中用于调用 sed、rsync、ssh 等的 system() 的替代方案:函数是否存在,我应该编写自己的函数,还是我错过了重点?

    最近 我发现了base files命令 与其他命令一起使用 例如getwd write lines file show dir等等 似乎有许多 bash 函数的 R 等价物 我还在 R 中编写了一些函数来简化对ssh and rsync通过
  • 如何使用 SparkR 1.6.0 写入 JDBC 源?

    使用 SparkR 1 6 0 我可以使用以下代码从 JDBC 源读取数据 jdbc url lt jdbc mysql localhost 3306 dashboard user
  • 以编程方式将字符串宽度值插入到 sprintf() 中

    我正在尝试以编程方式将字符串宽度值插入到sprintf 格式 期望的结果是 sprintf 20s hello 1 hello 但我想插入20在同一通话中即时进行 因此它可以是任何号码 我努力了 sprintf ds 20 hello 1
  • 如何在将两根柱子保持在一起的同时熔化柱子?

    我有这种宽格式的数据 我想将其转换为长格式 Cond Construct Line Plant Tube shoot weight shoot Tube root weight root 1 Standard NA NA 2 199 95
  • SPSS 中的标准化残差与 R rstandard(lm()) 不匹配

    在寻找 R 相关解决方案时 我发现 R 和 SPSS 版本 24 在计算简单线性模型中的标准化残差方面存在一些不一致 看来SPSS所谓的标准化残差匹配 R学生化残差 我完全不认为某处存在软件错误 但显然这两个程序之间存在差异 看看这个例子
  • 闭包作为数据合并习惯的解决方案

    我正在尝试解决闭包问题 而且我think我发现了一个案例 他们可能会有所帮助 我有以下几部分需要处理 一组正则表达式 旨在清理状态名称 位于函数中 具有州名称 上述函数创建的标准化形式 和州 ID 代码的 data frame 用于链接两者
  • 在 ifelse() 语句内部和外部运行一行时的不同输出

    我正在尝试运行一个简单的命令 但不知道为什么在内部和外部运行它时输出不同ifelse 功能 函数条件评估为FALSE 所以输出应该完全相同 但是 单独运行时 输出为0 0 1 1 0 1 0 1 NA 根据需要 但是从ifelse 函数 输

随机推荐

  • PHP 和 XML。使用 PHP 循环 XML 文件

    我现在正陷入 foreach 炼狱中 试图想出一种用 PHP 遵循 XML 文件内容 遍历这个 XML 文件 下面的实际 XML 文本 的方法 我想做的是 获取所有文件夹元素名称 如果文件夹元素的子文件夹属性为 yes 则向下移动一级并获取
  • 在 Google Compute Engine 上从没有公共 IP 的计算机路由到互联网

    在 Google Compute Engine 上 我们有没有公共 IP 的机器 因为配额限制了可以拥有公共 IP 地址的机器数量 我们需要这些非公共 IP 机器来访问 Google 存储桶中的数据 这似乎意味着我们必须路由到互联网 但我们
  • 使用 ImageMagick 对图像进行平等测试

    ImageMagick 库中有相等谓词函数吗 我想比较两个图像并找出它们是否完全相同 像素的所有颜色都相同 或有任何差异 我查了一下 好像没有这个功能 我应该自己使用像素迭代器编写函数吗 ImageMagick 提供compare功能来正确
  • 如何在不同的目录中启动 npm?

    我通常cd进入app目录然后运行npm start 我的感觉应该是有什么办法可以跑npm start带有路径参数 但是 npm 启动文档不包含这样的功能 我尝试自己却发现npm start myapp不起作用 有没有办法做到这一点 这一行应
  • 如何在 Angular 8 中将下拉列表(带选项)从 JSON 导出到 Excel?

    我正在尝试将 JSON 数据导出到具有下拉列表的 Excel 如果我们将数组作为单元格值传递 是否可以在 Excel 中创建下拉菜单 带选项 我正在尝试使用内置库 XLSX 来实现此目的 但如果我在单元格值中传递数组 则无法查看数据 更新
  • 如何知道一个StorageFolder-obj属于SD还是Phone?

    有没有办法知道 StorageFolder obj 属于 SD 或 WP8 1 上的手机 感谢您 例如 您可以通过检查Path of StorageFolder or StorageFIle string folderPath yourSt
  • 如何在jsPDF生成的PDF中添加水印?

    我正在从canva 生成PDF 并使用jsPDF 生成它 https github com MrRio jsPDF 这是我正在使用的代码 我想将水印添加到页面中 有人能帮我吗 self downloadCanvasObjectAsPDF f
  • 导入错误:没有名为 requests 的模块

    我知道有很多关于此的帖子 并且我尝试使用提供的解决方案 但无济于事 我试过pip install requests and pip install requests upgrade pip install requests upgrade
  • 没有标签的“for”属性的自定义复选框(Bootstrap 4)

    有没有办法仍然保留 Bootstrap 4 自定义复选框样式不使用 the id关于输入和属性for标签上 当您删除它时 检查的样式不存在 Example div class custom control custom checkbox m
  • 使用 jQuery 以像素为单位的填充或边距值作为整数

    jQuery 具有 height 和 width 函数 它们以整数形式返回像素的高度或宽度 如何获取元素的填充或边距值以像素和整数为单位使用 jQuery 我的第一个想法是执行以下操作 var padding parseInt jQuery
  • 需要帮助将格式 20120130 的日期转换为日期数据类型 oracle sql

    您能帮我将日期从 20120101 格式转换为 Orcle Sql 中的 DATE 格式吗 我看了这个link但它没有提到日期格式是否是自定义的 编辑 是否可以将任何排除规则写入转换函数 像这样的 99999999 到 9999 12 31
  • Firefox 浏览器不会重新加载更新的 CSS/JS 文件

    我在 Firefox 浏览器中遇到问题 因为每次更新 CSS 或 JS 文件时 我都需要清除 Firefox 浏览器的缓存才能获取更新的文件 我使用 XSP2 服务器是因为我在 ubuntu 中使用 C 和 asp net 开发了我的 we
  • Java真的很慢吗?

    Locked 这个问题及其答案是locked因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 Java有在某种程度上因缓慢而闻名 Java真的很慢吗 如果是 为什么 瓶颈在 或曾经 在哪里 是因为 JVM 效率低下吗 垃圾收
  • array_unique() 是否通过引用修改其数组?

    我使用后array unique 在数组上 当我var dump 数组 它仍然具有相同的内容 但有重复 array 21 0 gt string 10 tricou CRS 1 gt string 10 tricou CRM 2 gt st
  • C 调用约定和传递参数

    在 Linux 或 OS X 中进行函数调用时 被调用者可以修改堆栈上参数的值吗 我的假设是 由于调用者是清理它们的人 因此它们在函数调用后应该包含相同的值 但是我发现带有 O2 的 GCC 正在修改在堆栈上传递给它的参数 我还查找了包括
  • 为什么 openCV 的 fastNlMeansDenoisingColored() 给出错误?

    我是菜鸟openCV概念 所以如果我的问题很愚蠢 请原谅我 实际上我正在尝试应用Photo fastNlMeansDenoisingColored 方法 但我不明白为什么它会给出这样的错误 Code Mat tmp new Mat bitm
  • 将 R 中的参数传递给多个实数变量的函数

    我是 R 的新手 需要解决多目标优化问题 MOOP 我已经导入了 mco 包 定义了我的函数并检查了 nsga2 函数 问题是 当前者与数字变量匹配时 我还没有找到绑定函数定义中的参数 形式参数 和调用中的参数 实际参数 的正确方法 我有以
  • xampp 上的 LDAP 配置

    我一直在尝试在 xampp localhost 上配置 ldap 我在 php ini 文件中启用了 ldap 扩展 我也尝试过更改系统变量 我不断收到此错误 LDAP 功能不存在 加载模块 ldap php 模块或使用编译有 ldap 支
  • UITabBarController 仅显示其 UITabBar 的一半(屏幕外)

    当我从 UIViewController 呈现 UITabBarController 后 我的 UITabBar 没有完全显示 请你告诉我我做错了什么吗 我的代码是 some method LoggedInViewController lv
  • R:熔化和铸造

    我有一个这样的数据集 CASE ID c C1 C1 C2 C2 C2 C3 C4 PERSON ID c 1 0 7 8 1 20 7 PERSON DIVISION c Zone 1 NA Zone 1 Zone 3 Zone 1 Zo