R 分号将列分隔为行

2024-04-28

我正在使用 RStudio 2.15.0,并使用 XLConnect 从 Excel 创建了一个包含 3000 多行和 12 列的对象,我试图将一列分隔/拆分为行,但不知道这是否可能或如何执行。下面的数据示例使用 3 列连接。对此的任何帮助都将是巨大的。

适用于其中 2 列的代码如下。

v1 <- with(df, tapply(PolId, Description,  FUN= function(x) {
x1 <- paste(x, collapse=";")
gsub('(\\b\\S+\\b)(?=.*\\b\\1\\b.*);', '',     x1, perl=TRUE)}))
library(stringr)
Description <- rep(names(v1),  str_count(v1, '\\w+'))
PolId <- scan(text=gsub(';+', ' ', v1), what='', quiet=TRUE)
data.frame(PolId, Description)  

样本数据

PolId   Description  Document.Type
ABC123;ABC456;ABC789;   TEST1  Pol1
ABC123;ABC456;ABC789;   TEST1  Pol1
ABC123;ABC456;ABC789;   TEST1  Pol1
AAA123; TEST1  End1
AAA123; TEST2  End2
ABB123;ABC123;  TEST3  End1
ABB123;ABC123;  TEST3  End1

我希望输出像这样(替换重复的 Polid)

PolId   Description  Document.Type
ABC123  TEST1        Pol1
ABC456  TEST1        Pol1
ABC789  TEST1        Pol1
AAA123  TEST1        End1
AAA123  TEST2        End2
ABB123  TEST3        End1
ABC123  TEST3        End1

这是一个基本的 R 解决方案。拆分PolId现场使用strplit对于每个这样的分割字段 cbind 它与相应的Description。这给出了我们的矩阵列表rbind一起。最后设置列名称。

out <- do.call(rbind, Map(cbind, strsplit(DF$PolId, ";"), DF$Description))
colnames(out) <- colnames(DF)

giving:

> out
      PolId    Description
 [1,] "ABC123" "TEST1"    
 [2,] "ABC456" "TEST1"    
 [3,] "ABC789" "TEST1"    
 [4,] "ABC123" "TEST1"    
 [5,] "ABC456" "TEST1"    
 [6,] "ABC789" "TEST1"    
 [7,] "ABC123" "TEST1"    
 [8,] "ABC456" "TEST1"    
 [9,] "ABC789" "TEST1"    
[10,] "AAA123" "TEST1"    
[11,] "AAA123" "TEST2"    
[12,] "ABB123" "TEST3"    
[13,] "ABC123" "TEST3"    
[14,] "ABB123" "TEST3"    
[15,] "ABC123" "TEST3" 

Note:我们用它作为输入:

DF <-
structure(list(PolId = c("ABC123;ABC456;ABC789;", "ABC123;ABC456;ABC789;", 
"ABC123;ABC456;ABC789;", "AAA123;", "AAA123;", "ABB123;ABC123;", 
"ABB123;ABC123;"), Description = c("TEST1", "TEST1", "TEST1", 
"TEST1", "TEST2", "TEST3", "TEST3")), .Names = c("PolId", "Description"
), class = "data.frame", row.names = c(NA, -7L))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R 分号将列分隔为行 的相关文章

  • 如何从类外部更改公共 R6 类方法?

    我希望能够在我的 R6 类中重新定义公共方法 以便它根据该类保存的数据类型进行更改 如下所示 library R6 Simple lt R6Class Simple public list dt mtcars my print functi
  • 用于更改向量中元素顺序的闪亮小部件

    在很多网站上 您都有一个拖放界面来更改列表中元素的顺序 我正在寻找类似的东西闪亮 我希望用户能够拖放列表中的元素 通过更改顺序来更改优先级 现在我有一个滥用的解决方案selectizeInput 这是可行的 但当选择列表变得更大时 它很快就
  • R 的 dplyr 切片中的奇怪行为

    打电话时slice df i 在 R 的 dplyr 包中 如果我要求的行索引不存在 nrows lt i 它似乎返回除组中的第一行之外的所有行 就像我调用的那样slice df 1 例如 library dplyr c1 lt c a b
  • R Shiny - 修复了 Shiny 仪表板中的侧边栏和主标题

    我有一个简化的闪亮仪表板 请参阅下面的代码 我想修复侧边栏和主标题 因此 在其他帖子的帮助下 我编写了一个 CSS 文件来解决该问题 sidebar color FFF position fixed width 220px white sp
  • 如何更改 Quarto pptx 中的字体格式

    我正在 R 中使用 Quarto 创建 pptx 要更改我尝试更改的默认字体格式mainfont范围 但是当我渲染它时 最终的 pptx 文件具有默认字体 Calibri 这是我的文件 YAML 将 Quarto 文件渲染为 pptx 时如
  • 为 ggplot 定义新的尺度轴变换

    我正在尝试创建一个squared使用 y 轴变换scales trans new但遇到错误 MWE data data frame x 1 10 y runif 10 z rnorm 10 10 library ggplot2 ggplot
  • 使 matplotlib 图形默认看起来像 R?

    Is there a way to make matplotlib behave identically to R or almost like R in terms of plotting defaults For example R t
  • 以计数矩阵作为响应的多项式

    根据帮助multinom 包裹nnet 响应应该是一个因子或具有 K 列的矩阵 它将被解释为每个 K 类的计数 我尝试在第二种情况下使用此函数 但出现错误 这是我所做的示例代码 response lt matrix round runif
  • 如何转置 R markdown 文档中的表格?

    假设我打印一个名为summary table的数据框 如下所示 summary table data frame a c 1 2 3 b c 11 12 13 c c 21 22 23 d c 31 32 33 e c 41 42 43 f
  • 计算数据框中每一行的 R 条件运行总和

    我想创建一个等于 data Rating 的运行总和的列 假设第 3 列和第 4 列中有两个条件成立 特别是 data Year 换句话说 这应该计算直到上一年为止每个 id 的评分累积总和 它应该对数据框中的每一行 大约 50 000 行
  • 如何缩放(标准化)每列内的 ggplot2 stat_bin2d 值(按 X 轴)

    我有一个 ggplot stat bin2d 热图 library ggplot2 value lt rep 1 5 1000 df lt as data frame value df group lt rep 1 7 len 5000 d
  • 如何在r中进行左连接[重复]

    这个问题在这里已经有答案了 我有两个数据集一和二 数据集一 a b c 111 a 1 112 b 2 113 c 3 114 d 4 115 e 5 数据集二 e d g 222 ss 11 111 ff 22 113 ww 33 114
  • linux下无法安装Cairo包

    我在本地下载该软件包并尝试安装它 但出现此错误 R CMD INSTALL l usr local lib64 R library Cairo 1 5 1 tar gz 我得到他的错误 checking for PNG support in
  • 使用 lpSolve 优化 R 团队名单

    我是 R 新手 有一个想要解决的特定幻想运动队优化问题 我见过其他帖子使用 lpSolve 来解决类似的问题 但我似乎无法理解代码 下面的示例数据表 每个球员都在一个球队中 扮演着特定的角色 有薪水 并且每场比赛都有平均得分 我需要的限制是
  • 在 R 中捕获段错误

    我得到了caught segfault每次我尝试从以下位置运行任何绘图函数时都会出错ggplot2包 1 0 0 我已经尝试过这个qplot geom dotplot geom histogram等来自包的数据 例如diamonds or
  • 如果指定了多个存储库,install.packages 的行为是什么?

    从文档中并不清楚如果在 install packages 中指定了多个存储库会出现什么行为 我的直觉告诉我 它将尝试第一个存储库 如果找不到包 它将尝试第二个存储库 依此类推 不幸的是 情况似乎并非如此 我看到的是 只尝试了第一个 并返回错
  • 使用 fread 导入数据后所有列均作为字符

    我导入了一个 CSV 文件 包含文本列和数字列 x lt fread myfile csv header TRUE verbose T na strings c null null 但导入后 当我运行summary x 时 所有列都被视为字
  • R(或替代方案?)中的高(或非常高)阶多项式回归

    我想对 R 中的一组数据进行 非常 高阶回归拟合 但是poly 函数的阶数极限为 25 对于此应用程序 我需要的订单范围为 100 到 120 model lt lm noisy y poly q 50 Error in poly q 50
  • 矩阵中两个字符串的最大 nchar

    我想找到更好的方法来找到我正在相互比较的两个字符串的更大的 nchar 假设我有字符串句子匹配data frame 和我需要创建一个 max nchar string1 nchar string2 矩阵 但没有 for 循环 这是非常慢的方
  • 确定 R 中的组是否重复某个值

    我有一个包含许多列和行的数据 我想通过创建新的逻辑变量来确定某个组的值是否重复 相同 所以我的数据如下所示 v0 lt c 1 2 3 4 5 6 7 8 9 v1 lt c a b a c e c b b e v2 lt c R NA R

随机推荐

  • T-SQL 跳过获取存储过程

    我在这个网站上似乎运气不太好 但我仍然是个乐观主义者 我会继续努力 我有两个表 期刊和文章类别 使用此查询连接 SELECT Journals JournalId Journals Year Journals Title ArticleCa
  • 在 Prolog 中动态拆分列表

    我从序言开始几周 但我看到了更深入的操作列表的递归谓词的构造 我的问题是 是否可以构建一个谓词 将给定列表拆分为给定数量的其他列表 比如我想象的 split H T NumberLists Lists 递归实现 split 1 2 3 4
  • 隐藏 asp 单选按钮文本

    我有一个 asp 单选按钮 我想在 javascript 中将其可见性设置为 false
  • 发生异常后不刷新会话 - NHibernate

    我正在 NET 3 5 NHibernate 下开发一个 ASP NET MVC Web 应用程序 并托管在 Windows Azure 上 当 web 应用程序从本地开发结构运行时 它可以正常工作 然而 当我将其移动到 Windows A
  • Eclipse WTP 与 Tomcat 中干净工作目录和干净工作目录之间的区别

    我正在使用 Eclipse 进行 Java Web 开发 我安装了 WTP 和 Tomcat 我通过 Eclipse 运行 Tomcat 这是一个非常标准的配置 我想了解的是 当您右键单击 服务器 选项卡中的服务器时 它会为您提供两个选项
  • Pytorch Tensor 如何获取元素索引? [复制]

    这个问题在这里已经有答案了 我有 2 个名为x and list它们的定义如下 x torch tensor 3 list torch tensor 1 2 3 4 5 现在我想获取元素的索引x from list 预期输出是一个整数 2
  • 如何从 C# 中的显示名称获取 Active Directory 中的用户名?

    我希望能够使用 Active Directory 中用户的显示名称来获取该用户的用户 ID 显示名称是从数据库中获取的 并且已在该用户会话期间使用以下代码来存储以获取显示名称 using System DirectoryServices A
  • Dim As New 与 Dim / Set 有什么区别

    在 VBA 中 我可以通过以下两种方式之一创建对象 First way Dim myCol1 As New Collection Second way Dim myCol2 As Collection Set myCol2 New Coll
  • 可以通过robotium在测试用例中打开/关闭wifi吗

    我们可以在 Robotium 的测试用例中打开 关闭设备的 Wi Fi 吗 因为我正在测试一个问题 需要在初始阶段打开 wifi 然后关闭 wi fi 并继续测试 是的 你可以做到 请参阅示例 公共无效testNoNetworkConnec
  • “res.render”有什么作用,html 文件是什么样的?

    什么是res render做什么 html 文件是什么样的 我的最终目标是将文本文件中的任意逗号分隔值加载到 html 文件中 例如 我只能推断视图是 html 文件 并且回调返回该 html 文件 这是文档 http expressjs
  • ruby 2.1.2超时仍然不是线程安全的吗?

    我有 50 个 sidekiq 线程在网络上爬行 几周前 这些线程在运行大约 20 分钟后开始挂起 当我执行回溯转储时 大多数线程都卡在 net http 初始化上 app vendor ruby 2 1 2 lib ruby 2 1 0
  • 跨线程操作无效:从创建它的线程以外的线程访问控制“dataGridView1”[重复]

    这个问题在这里已经有答案了 我有一个 Windows 表单 需要很长时间才能将数据加载到我的 datagridview 中 我不断收到这一行的错误 dataGridView1 Rows Add row 跨线程操作无效 控制 dataGrid
  • 如何处理“IllegalStateException:BeanFactory 未初始化或已关闭”?

    使用 Tomcat 7 上的 Grails 2 0 0 我在启动时得到以下结果 2011 08 21 11 10 09 758 main ERROR StackTrace Full Stack Trace java lang Illegal
  • 通过从数组添加对象来数组?

    我不确定我在这里做错了什么 我尝试了各种组合来尝试将数组复制到变量 mmm 中 我正在尝试学习如何创建 2D 数组 然后运行循环将 init array 放入 10 列 NSMutableArray mmm NSMutableArray a
  • 使用 UIAlertView 以编程方式退出 iOS 应用程序

    我正在通过以下方法中止我的 iOS 应用程序 void cancelSelected UIAlertView alert UIAlertView alloc initWithTitle nil message Are you sure yo
  • 在 R 中导入 png 文件并转换为动画(.mp4)

    我正在尝试用 R 中的几个 png 文件创建一个简短的动画 我尝试了 packagemagick但只有当我将它们保存为 gif 时它才有效 当我尝试另存为 mp4 时 它将生成一个 mp4 文件 但一旦打开它 只会显示第一张图像 我的代码是
  • FluentValidation 集合属性未验证

    这是我第一次尝试实现 FluentValidation 因为我需要涵盖复杂的验证场景 我试图验证的类具有大量属性 复杂对象和多个集合 我没有遇到验证主类的属性的问题 甚至检查集合是否不为空 但在验证每个集合中的对象属性时确实遇到了问题 为了
  • 如何使用 Curl CLI 执行 OAuth 2.0?

    我想在 Windows 命令提示符下使用curl 来执行Google OAuth 2 0 我的目标是更好地理解 OAuth 服务器实现的身份验证流程 查看 HTTP 标头等 如何在 Windows 命令提示符下使用curl exe 来完成此
  • 带有mysql的实体框架,linux和windows之间的表大小写问题

    我们目前正在开发一个使用 Code First Entity Framework 和 Mysql 的产品 开发数据库托管在 Windows 环境中 而生产 mysql 则托管在 Linux 环境中 我遇到的问题是 mysql 中的表命名如下
  • R 分号将列分隔为行

    我正在使用 RStudio 2 15 0 并使用 XLConnect 从 Excel 创建了一个包含 3000 多行和 12 列的对象 我试图将一列分隔 拆分为行 但不知道这是否可能或如何执行 下面的数据示例使用 3 列连接 对此的任何帮助