使用 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 将单列拆分为多个观察值 的相关文章

  • par(mfrow=c(1,2)) 不显示并排密度图[重复]

    这个问题在这里已经有答案了 par mfrow c 1 2 plot 1 12 log y plot 1 2 xaxs i 然而 当我尝试做并排密度图时 图会单独输出 load the stud recs dataset library U
  • decompose() 的周期太少[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 错误看起来像这样 decompose
  • 从 R 中的向量中选择所有可能的元组

    我正在尝试用 R 编写一个程序 当给定一个向量时 将返回所有可能的tuples http en wikipedia org wiki Tuples该向量中的元素 例如 元组 c a b c c a b c 出租车 c a c c b c c
  • ggplot2可以在一个图例中分别控制点大小和线大小(线宽)吗?

    一个使用的例子ggplot2绘制数据点组和连接每组均值的线 并使用相同的映射aes for shape并为linetype p lt ggplot mtcars aes gear mpg shape factor cyl linetype
  • LDA with topicmodels,如何查看不同文档属于哪些主题?

    我正在使用 topicmodels 包中的 LDA 我已经在大约 30 000 个文档上运行它 获取了 30 个主题 并获得了主题的前 10 个单词 它们看起来非常好 但我想看看哪些文档属于哪个主题的概率最高 我该怎么做 myCorpus
  • 在 R 中创建一个运行计数变量?

    我有一个足球比赛结果的数据集 我希望通过创建一组类似于世界足球 Elo 公式的运行评级来学习 R 我遇到了麻烦 在 Excel 中看似简单的事情在 R 中并不完全直观 例如 4270 个观察中的前 15 个具有必要的变量 date t 1
  • 在shiny中过滤传单地图数据

    我在用传单地图设置这个闪亮的东西时遇到了麻烦 我的原帖 https stackoverflow com questions 50111566 applying leaflet map bounds to filter data within
  • 重复测量引导统计数据,按多个因素分组

    我有一个看起来像这样的数据框 但显然还有更多行等 df lt data frame id c 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 cond c A A B B A A B B A A B B A A B B co
  • 我无法下载 R 中的 reshape2 包 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我在尝试安装 R 包时收到此响应 gt installed packages reshape2 Package LibPath V
  • 纵向序列数据的三次样条方法?

    我有一个串行数据 格式如下 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
  • 如何计算R中移动窗口内的平均斜率

    我的数据集包含2个变量y 和 t 05s y 每 05 秒测量一次 我正在尝试计算移动中的平均坡度20秒窗口 即计算第一个 20 秒斜率值后 窗口向前移动一个时间单位 05 秒 并计算下一个 20 秒窗口 在以下位置生成连续 20 秒斜率值
  • 选择 R 中的数据表中隐藏时(在绿色加号下方)列的显示顺序

    Context 使用 DataTables 库制作交互式表格时 当屏幕宽度对于列的数量和宽度来说太窄时 列将隐藏在绿色 号下 我有一个非常宽的表格 有 20 多列 其中一些内容非常冗长 因此某些列在所有屏幕宽度下总是隐藏的 每次隐藏新列时
  • 通过间接引用列来修改数据框中的某些值

    我正在整理一些数据 我们将失败的数据分类到垃圾箱中 并按批次计算每个分类箱的有限产量 我有一个描述排序箱的元表 这些行按升序测试顺序排列 一些排序标签带有非语法名称 sort tbl lt tibble tribble weight lab
  • 绘制点之间的所有线

    我有以下 R 代码 x lt c 0 01848598 0 08052353 0 06741172 0 11652034 y lt c 0 4177541 0 4042247 0 3964025 0 4074685 d lt data fr
  • R 中的快速 QR 分解

    我有大量矩阵 需要对其执行 QR 分解并存储生成的 Q 矩阵 进行归一化 以便 R 矩阵在其对角线上具有正数 除了使用之外还有其他方法吗qr 功能 这是工作示例 system time Parameters for the matrix t
  • 删除特定数据表上的所有边框

    我需要使用 PrimeFaces 隐藏一个数据表的所有边框 而不是全部 我尝试了很多事情 但没有人奏效 有谁知道该怎么做 我已将以下样式 单独 应用于ui datatable class border hidden important bo
  • 在 R 中绘制 Likert 变量的堆积条形图

    假设我有一个如下所示的数据框 P Q1 Q2 1 1 4 1 2 2 3 4 3 1 1 4 其中的列告诉我哪个人相应地回答了问题 q1 q2 中的哪一个 这些问题需要按照 4 分李克特量表进行回答 例如 批准 表示 1 稍微批准 表示 2
  • 从命令行运行 R 代码 (Windows)

    我在名为 analysis r 的文件中有一些 R 代码 我希望能够从命令行 CMD 运行该文件中的代码 而无需通过 R 终端 并且我还希望能够传递参数并在我的代码中使用这些参数 例如就像下面的伪代码 C gt execute r scri
  • 在 R 格子包中微调点图

    我正在尝试为不同的数据集和不同的算法绘制一堆 ROC 区域 我有三个变量 方案 指定所使用的算法 数据集 是正在测试算法的数据集 以及 Area under ROC 我正在 R 中使用lattice库 命令如下 点图 方案 Area und
  • R 中的列乘以子字符串

    假设我有一个数据框 其中包含多个组件及其在多个列中列出的属性 并且我想对这些列运行多个函数 我的方法是尝试将其基于每个列标题中的子字符串 但我无法弄清楚如何做到这一点 下面是数据框的示例 Basket F Type 1 F Qty 1 F

随机推荐

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

    我试图分别从 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