在 R 中的多列中拆分数据框

吉加·梅塔

我的数据框如下:

User  
JohnLenon03041965  
RogerFederer12021954  
RickLandsman01041975  

我正在尝试将输出作为

Name     Lastname    Birthdate  
John     Lenon       03041965      
Roger    Federer     12021954  
Rick     Landsman    01041975  

我尝试了以下代码:

**a = gsub('([[:upper:]])', ' \\1', df$User)
a <- as.data.frame(a)
library(tidyr)
a <-separate(a, a, into = c("Name", "Last"), sep = " (?=[^ ]+$)")**

我得到以下信息:

Name  Last  
John  Lenon03041965  
Roger Federer12021954  
Rick  Landsman01041975  

我试图使用像 (?=[0-9]) 这样的单独条件,但得到这样的错误:

c <-separate(c, c, into = c("last", "date"), sep = '(?=[0-9])')

if (!after) c(values, x) else if (after >= lengx) c(x, values) else c(x[1L:after], : 参数长度为零时出错

阿克伦

我们可以sep通过指定在小写字母和大写字母 ( (?<=[a-z])(?=[A-Z]))之间拆分或 ( |) 在小写字母和数字 ( (?<=[a-z])(?=[0-9]+))之间拆分来使用正则表达式环视

df1 %>%
   separate(User, into = c("Name", "LastName", "Birthdate"),
         sep = "(?<=[a-z])(?=[A-Z])|(?<=[a-z])(?=[0-9]+)")
#   Name LastName Birthdate
#1  John    Lenon  03041965
#2 Roger  Federer  12021954
#3  Rick Landsman  01041975

或者另一种选择是extract通过将字符放在方括号 ( (...))内来将字符作为一个组捕获这里,第一个捕获组匹配一个大写字母后跟一个或多个小写字母 ( ([A-Z][a-z])) 从^字符串的开头 ( ),第二个捕获一个或多个不是数字 ( ([^0-9]+)) 的字符,并且在第 3 个字符中,它是其余字符 ( (.*))

df1 %>% 
    extract(User, into = c("Name", "LastName", "Birthdate"),
           "^([A-Z][a-z]+)([^0-9]+)(.*)")
#   Name LastName Birthdate
#1  John    Lenon  03041965
#2 Roger  Federer  12021954
#3  Rick Landsman  01041975

数据

df1 <- structure(list(User = c("JohnLenon03041965", "RogerFederer12021954", 
"RickLandsman01041975")), .Names = "User", class = "data.frame", row.names = c(NA, 
-3L))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

R按列中的新行拆分数据框

来自分类Dev

基于 r 中的一列拆分数据框,具有非固定宽度的列

来自分类Dev

根据r中列的累积值拆分数据

来自分类Dev

在R中拆分数据集

来自分类Dev

在R中拆分多列

来自分类Dev

在R中,如何按多个列中的因数拆分/细分数据帧?

来自分类Dev

在R中,如何按多个列中的因数拆分/细分数据帧?

来自分类Dev

R中数据框列的拆分和组合

来自分类Dev

在R中的数据框中循环遍历多列

来自分类Dev

根据 R 中的条件合并数据框中的多列

来自分类Dev

如何在R中每月拆分数据

来自分类Dev

如何按R中的特定行拆分数据帧

来自分类Dev

拆分数据帧以传递到R中的sprintf

来自分类Dev

在R中按比例拆分数据帧

来自分类Dev

如何按R中的特定行拆分数据帧

来自分类Dev

如何在R中每月拆分数据

来自分类Dev

在 R 中清理和拆分数据集

来自分类Dev

在 R 中拆分数据 - 简单的按行

来自分类Dev

在 R 中不采样的拆分数据集

来自分类Dev

如何在R中拆分数据帧

来自分类Dev

R:在数据框的多列中替换特殊字符

来自分类Dev

同时按多列对R中的数据框进行排序

来自分类Dev

R:根据向量值从数据框中删除多列

来自分类Dev

取消列出R数据框中的多列

来自分类Dev

计算基于多列的数据框中的出现次数-R

来自分类Dev

R:在数据框的多列中替换特殊字符

来自分类Dev

同时按多列对R中的数据框进行排序

来自分类Dev

使用R,如何拆分数据框的列,然后分成多行?

来自分类Dev

R:按空间拆分数据帧行,删除通用元素,将不等长的列放在新的df中