r语言中怎么提取矩阵中的第i行_数据运算026篇数据的行拆分

本文介绍了如何在R语言中利用tidyr的separate_rows函数,针对包含分隔符的数据行进行拆分。通过示例展示了如何找出含有分隔符的行,补充完整数据并进行分行操作。同时提到了unite函数,作为在数据处理中常见的合并操作。
摘要由CSDN通过智能技术生成
  tidyr的separate_rows及数据预处理 生活科学哥-R语言科学 2020-10-08  7:03 赶上长假的尾巴,今天早起处理一个朋友的简单的R问题,这里给大家分享一下。问题很简单,但是需要一点点数据的预处理:针对一数据框中的数据,某一列里的数据,进行拆分,生成更多的行,具体情况下面作一介绍。

原始的数据及想要的图

  为了演示这个原始数据,我这里生成了一个虚拟的数据,结构如下:

> dat2  id col.4.separate str1  1        a-x/y/z   a2  2       bb-1/2/3   b3  3            c-3   c4  4     d-x1/x2/x3   d5  5            e-5   e6  6            f-6   f7  7            g-7   g8  8          u/v/w   h

可以看到, 在该数据中,我们的第1,2,4,8列中,有/作为分隔符,实际上这些行中包含了三项,以第1行为例,实际应该是a-x,a-y与a-z,我们要做的,就是根据这个条件,进行分行,所以,任务有两个:

  • 先找出要分行的行,并且补全(比如将a-x/y/z变成a-x/a-y/a-z)

  • 用separate_rows()进行分行。

a222a87a9819100a44fcf241bb0f5ef1.png

实现过程

     我们通过下面的实际例子,来看看如何作图:

dat2"dummy.csv",stringsAsFactors = FALSE)rownum.4.separate,#找出同时有-与/的列,作为补全的对象rowtoreplace2]#要补全的列string.eachrow".*(?=\\-)")#提取这些补全列的字符(比如第一行的a-string.eachrow"/",#加上/与-for (i in 1:length(rowtoreplace)){
      rowtoreplace[i]=str_replace_all(rowtoreplace[i],"/",string.eachrow[i])  }#依次替换dat2[rownum,2]=rowtoreplacedat2.4.separate,sep=#最终的分行# A tibble: 16 x 3      id col.4.separate str     <int>  1     1 a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值