使用 R 将单列拆分为多个观察值

2023-11-26

我正在处理 HCUP 数据,该数据在一个列中具有一系列值,需要将其拆分为多个列。以下是 HCUP 数据框供参考:

code            label
61000-61003     excision of CNS
0169T-0169T     ventricular shunt

所需的输出应该是:

code            label
61000           excision of CNS
61001           excision of CNS
61002           excision of CNS
61003           excision of CNS
0169T           ventricular shunt

我解决这个问题的方法是使用包分裂堆叠形状并使用此代码

library(data.table)
library(splitstackshape)

cSplit(hcup, "code", "-")[, list(code = code_1:code_2, by = label)]

这种方法会导致内存问题。有没有更好的方法来解决这个问题?

一些评论:

  • 该数据除“T”外还有许多字母。
  • 该字母可以位于前面或末尾,但不能位于两个数字之间。
  • 单个范围内字母从“T”到“U”没有变化

这是一个使用的解决方案dplyr and all.is.numeric from Hmisc:

library(dplyr)
library(Hmisc)
library(tidyr)
dat %>% separate(code, into=c("code1", "code2")) %>%
        rowwise %>%
        mutate(lists = ifelse(all.is.numeric(c(code1, code2)),
                         list(as.character(seq(from = as.numeric(code1), to = as.numeric(code2)))),
                         list(code1))) %>%
        unnest(lists) %>%
        select(code = lists, label)

Source: local data frame [5 x 2]

   code             label
  (chr)            (fctr)
1 61000   excision of CNS
2 61001   excision of CNS
3 61002   excision of CNS
4 61003   excision of CNS
5 0169T ventricular shunt

用于修复字符值范围的编辑。稍微降低了简单性:

dff %>% mutate(row = row_number()) %>%
        separate(code, into=c("code1", "code2")) %>%
        group_by(row) %>%
        summarise(lists = if(all.is.numeric(c(code1, code2)))
                              {list(str_pad(as.character(
                                   seq(from = as.numeric(code1), to = as.numeric(code2))),
                                         nchar(code1), pad="0"))}
                          else if(grepl("^[0-9]", code1))
                              {list(str_pad(paste0(as.character(
                                   seq(from = extract_numeric(code1), to = extract_numeric(code2))),
                                      strsplit(code1, "[0-9]+")[[1]][2]),
                                         nchar(code1), pad = "0"))}
                          else
                              {list(paste0(
                                      strsplit(code1, "[0-9]+")[[1]],
                                      str_pad(as.character(
                                    seq(from = extract_numeric(code1), to = extract_numeric(code2))),
                                         nchar(gsub("[^0-9]", "", code1)), pad="0")))},
                   label = first(label)) %>%
        unnest(lists) %>%
        select(-row)
Source: local data frame [15 x 2]

               label lists
               (chr) (chr)
1    excision of CNS 61000
2    excision of CNS 61001
3    excision of CNS 61002
4  ventricular shunt 0169T
5  ventricular shunt 0170T
6  ventricular shunt 0171T
7    excision of CNS 01000
8    excision of CNS 01001
9    excision of CNS 01002
10    some procedure A2543
11    some procedure A2544
12    some procedure A2545
13    some procedure A0543
14    some procedure A0544
15    some procedure A0545

data:

dff <- structure(list(code = c("61000-61002", "0169T-0171T", "01000-01002", 
"A2543-A2545", "A0543-A0545"), label = c("excision of CNS", "ventricular shunt", 
"excision of CNS", "some procedure", "some procedure")), .Names = c("code", 
"label"), row.names = c(NA, 5L), class = "data.frame")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 R 将单列拆分为多个观察值 的相关文章

  • 在嵌套 tibbles 上应用 ntile

    我正在尝试申请ntile在一些嵌套的小标题上 但我似乎无法让它工作 你能看出我错在哪里吗 data iris iris gt group by Species gt mutate quintile ntile Petal Length 5
  • 删除 R 中具有重复属性的行

    我有一个大数据框 其中包含以下列 ID time OS IP 该数据帧的每一行对应一个条目 在该数据框中对于某些IDs存在多个条目 行 我想删除这些多行 显然 同一 ID 的其他属性会有所不同 或者换句话说 我只想要每个 ID 一个条目 行
  • 循环中的knitr模板和子文档

    圣诞节前我之前问过跨多个 knitr 文档的单一样式表 https stackoverflow com questions 20370584 single style sheet across multiple knitr document
  • read.table 和 read.delim 函数之间的区别

    两者有什么区别read table and read delim R语言中的函数 当您不确定函数的作用时 除了阅读帮助页面之外 您还可以检查函数的实际代码 例如 输入read delim显示该函数包含以下代码 gt read delim f
  • 确定向量中是否存在元素的最有效方法

    我有几种算法取决于确定元素是否存在于向量中的效率 在我看来 这 in 这相当于is element 应该是最有效的 因为它只返回一个布尔值 在测试了几种方法之后 令我惊讶的是 这些方法是迄今为止效率最低的 以下是我的分析 随着向量大小的增加
  • 在ggplotly散点图中添加自定义数据标签

    我想显示Species对于每个数据点 当光标位于该点上方而不是 x 和 y 值时 我用iris数据集 另外 我希望能够单击数据点以使标签持久存在 并且当我在图中选择新位置时标签不会消失 如果可能的话 最基本的是标签 持久性问题是一个优点 这
  • 对于多项式,获取其所有极值并通过突出显示所有单调部分来绘制它

    有人问我这个有趣的问题 我认为值得将其发布在这里 因为 Stack Overflow 上还没有任何相关线程 假设我有长度为的多项式系数n vector pc 其中次数多项式n 1对于变量x可以以其原始形式表示 pc 1 pc 2 x pc
  • 从 R 到 C 处理列表并访问它

    我想使用从 R 获得的 C 列表 我意识到这个问题与此非常相似 使用 call 在 R 和 C 之间传递数据帧 https stackoverflow com questions 6658168 passing a data frame f
  • 使用starts_with() 将 NA 替换为 0

    我正在尝试替换我的一组特定列的 NA 值tibble 这些列都以相同的前缀开头 所以我想知道是否有一种简洁的方法来使用starts with 函数从dplyr包可以让我做到这一点 我已经看到了有关 SO 的其他几个问题 但是它们都需要使用特
  • 以编程方式触发 R 传单中的标记鼠标单击事件以获得闪亮效果

    我的问题与此相同 在 R 传单中触发标记鼠标单击事件以获得闪亮效果 https stackoverflow com questions 56962857 trigger marker mouse click event in r leafl
  • 如何将 R 数据框中的多个字符列合并为单个列

    我正在处理人口普查数据 需要将四个字符列合并为一列 Example LOGRECNO STATE COUNTY TRACT BLOCK 60 01 001 021100 1053 61 01 001 021100 1054 62 01 00
  • 使用滑动窗口动画 ggplot 时间序列图

    我正在寻找在不失去分辨率的情况下对长时间序列图进行动画处理的方法 我希望视图能够 平移 数据 显示从开始到结束的滑动子集 假设我有以下内容 library ggplot2 library dplyr library gganimate df
  • 如何在 R 中只为直方图的一个标签着色?

    我有一个像这样的数据框 CellLines ZEB1 600MPE 2 8186 AU565 2 783 BT20 2 7817 BT474 2 6433 BT483 2 4994 BT549 3 035 CAMA1 2 718 DU447
  • 如何编辑数据表中的行

    我已经创建了一个数据表 它有 3 列产品编号 产品名称 and 产品 价格 Datatable table new DataTable Product table Columns Add Product id typeof int tabl
  • jupyter 中的 r 图形 - 无法启动 png() 设备

    我在 Jupyter 中使用 R 但无法在笔记本本身中绘制图表 这是一个可重现的示例 set seed 123 mat as matrix x rnorm 100 y rnorm 100 plot mat 在朱皮特中 Error in pn
  • 如何在 R 中为回归量创建“宏”?

    对于长且重复的模型 我想创建一个 宏 在 Stata 中称为 宏 并通过以下命令完成 global var1 var2 其中包含回归量的模型公式 例如来自 library car lm income education prestige d
  • 回归时如何设置系数值;右

    我正在寻找一种指定预测变量值的方法 当我使用当前数据运行 glm 时 其中一个变量的系数接近 1 我想将其设置为 0 8 我知道这会给我一个较低的 R 2 值 但我先验地知道模型的预测能力会更大 glm 的权重组件看起来很有希望 但我还没有
  • 访问 R 工作区中的数据[重复]

    这个问题在这里已经有答案了 我是自学 R 的 可能有一些非常基本的东西我可能不熟悉 如果是这样我道歉 我正在尝试访问外部来源提供给我的数据 它作为一个工作空间出现 我的流程如下 gt ls 1 2003OHT HR gt attach 20
  • R闪亮主面板显示样式和字体

    我正在学习闪亮的应用程序 并且有一些关于调整布局的基本问题 特别是样式和字体 希望得到指点或明确的答案 谢谢 考虑一个基本的输入输出应用程序 用户在 sidebarPanel 中输入数据 然后在 mainPanel 中反应性地输出结果 如何
  • 将所有分号替换为空格 pt2

    我尝试对 2000 多行关键字的列表运行文本分析 但它们的列出方式如下 战略 管理风格 组织 所以当我使用 tm 删除标点符号时 它就变成了 组织的战略管理风格 我认为这在某种程度上破坏了我常用术语的分析 我尝试过使用 vector lt

随机推荐

  • 如何计算点数组列表的质心

    我试图分别从 ArrayList 的点将所有 x 和 y 坐标相加 public static ArrayList knots new ArrayList
  • 如何使用 Sequelize CLI 从 Sequelize 模型自动生成迁移?

    我有一组 Sequelize 模型 我想使用迁移 而不是数据库同步 序列化 CLI据报道 似乎能够做到这一点本文 当您使用 CLI 生成模型时 您还将免费获得迁移脚本 如何使用 Sequelize CLI 从现有 Sequelize 模型自
  • MFC - 显示模式对话框时主窗口变暗

    我有一个相当标准的 MFC 应用程序 它包含一个主窗口 偶尔会弹出模式对话框 众所周知 在模式对话框关闭之前 在模式对话框之外什么都不能做 因此 一个不错的 UI 功能是 调暗 对话框后面主窗口的其余部分 以直观地表明您在完成模式对话框之前
  • 在 Apache Spark 中读取多行 JSON

    我试图使用 JSON 文件作为小型数据库 在 DataFrame 上创建模板表后 我用 SQL 查询它并得到一个异常 这是我的代码 val df sqlCtx read json path to user json df registerT
  • 有没有办法使用 pip 一次安装所有 python 模块?

    我想使用单个 pip 命令安装 Python 2 7 12 的所有可用模块 有没有一种方法可以做到这一点而不必指定每个包名称 我强烈建议不要这样做 绝大多数支持的最佳实践是使用requirements txt 文件 列出您想要专门安装的软件
  • AWS EC2 FTP / HTML

    我真的对 Apache 不太了解 我遵循了一些教程并安装了 LAMP 堆栈 我可以成功 ftp 到 home ec2 user 并在那里上传文件 但我希望能够将文件上传到 var www html 或者只是有一个可以使用我的帐户将文件上传到
  • Sublime Text 使用什么正则表达式语法?

    Sublime Text 使用什么正则表达式语法 POSIX POSIX 扩展 崇高的文字Find and Replace功能 随着snippets 由以下设备供电升压的pcre Perl 兼容的正则表达式 engine 对于语法高亮 Su
  • 禁用某些文件类型的 nginx 缓存

    我有 nginx 设置 充当 apache 的反向代理 但是 我需要禁用 gif 缓存 我怎样才能在 nginx 上做到这一点 Thanks 这应该可以解决问题 set no cache if request uri gif set no
  • 在 golang 中运行命令并将其与进程分离

    Problem 我正在 Linux 上用 golang 编写程序 需要执行长时间运行的进程 以便 我将正在运行的进程的标准输出重定向到文件 我控制进程的用户 当我的程序退出时 进程不会终止 该进程崩溃时不会变成僵尸 我得到正在运行的进程的P
  • AngularJS 作为 SOAP 客户端

    有没有办法使用 angularJS 作为 SOAP 客户端或开发 ng SOAP 客户端服务 当然 您所需要的只是在 JavaScript 上实现 SOAP 调用 例如使用 Javascript 的最简单 SOAP 示例
  • window.location 和 window.location.href 有什么区别吗? [复制]

    这个问题在这里已经有答案了 可能的重复 Javascript 设置 window location href 与 window location 当我在浏览器中测试这些代码时 它们似乎是相同的 有什么区别吗 1 window locatio
  • 制作 pandas 系列的真正深层副本

    我有一个pd Series每个单元格都是一个列表 我想对其进行深层复制 但看起来像pd Series copy只创建值的浅表副本 即使deep arg is True默认 example import pandas as pd sr pd
  • Python启动横幅在哪里定义的?

    我正在为我的系统编译几个不同版本的Python 我想知道启动横幅在源代码中的哪个位置定义 以便我可以为每个版本更改它 例如 当解释器启动时 它会显示 Python 3 3 1 default Apr 28 2013 10 19 42 GCC
  • makefile 中的多个冒号和等号(需要解释)

    这只是 makefile 的一部分 我不太明白发生了什么事 OBJS SRCS SRC cpp OBJ o OBJS OBJ o SRC cpp print opts cc command 我所理解的是这些行将 cpp 文件编译为 o 在
  • PowerMock可以为测试用例实例化内部类吗?

    我正在尝试测试具有多个私有类的类 是的 我知道这通常被认为是可测试性的不良实践 但这个问题与设计原则无关 我的课程看起来像这样 public class EnclosingClass private class InnerClass imp
  • 对“JNI_CreateJavaVM”窗口的未定义引用

    我试图熟悉 JNI API 但无法获得要编译的示例 C 程序 我在 Linux 中编译并运行了相同的示例 在下面的链接中发布问题后 但无法在 Windows 中编译它 我正在使用 mingw g 我已将所有包含路径更改为 Windows 路
  • Silverlight vs Flash vs HTML5,我应该关心吗?

    我阅读了一系列有关 Microsoft Silverlight 框架与 Flash 相比的优点 缺点的文章 事实上 在过去 18 个月里出现了两个版本的 Silverlight 以及超过 97 的网络浏览器已经预装了 Flash 这让我感到
  • ionic 应用程序 iOS 9 问题 [$rootScope:infdig] 达到 10 $digest() 迭代[重复]

    这个问题在这里已经有答案了 在我的 ionic angularjs 应用程序中 如果我单击 ionic 列表卡项目 我会在 iOS 9 上的过滤机制上遇到一些错误 我得到的错误 错误 rootScope infdig 已达到 10 次 di
  • ASP.NET:这个 HttpModule 有什么作用? System.ServiceModel.Activation.HttpModule

    谁能告诉我这个 HttpModule 的用途吗 它显示在我的 HttpModule 集合列表中 但我不知道它的用途 System ServiceModel Activation HttpModule 我找不到任何有关它的文档 System
  • 使用 R 将单列拆分为多个观察值

    我正在处理 HCUP 数据 该数据在一个列中具有一系列值 需要将其拆分为多个列 以下是 HCUP 数据框供参考 code label 61000 61003 excision of CNS 0169T 0169T ventricular s