首页 > 解决方案 > 拆分没有分隔符的 R 列

问题描述

如何在没有分隔符的情况下拆分我的“ID”列?这是我的示例数据框:

df=data.frame(ID=c("1a", "1", "2b", "2c", "1yolk", "3", "3yolk"), length=c(5.5, 6.7, 7.1, 8.2, 4.5, 2.2, 3.5))

我如何将 ID 列分成两列,第一列 (n) 只是第一个数字,第二列 (视图) 是第一个数字之后的所有内容。这是我希望生成的数据框的样子:

df=data.frame(n=c("1", "1", "2", "2", "1", "3", "3"), view=c("a", "", "b", "c", "yolk", "", "yolk"), length=c(5.5, 6.7, 7.1, 8.2, 4.5, 2.2, 3.5))

谢谢!!

标签: rsplittidyrdelimiter

解决方案


使用tidyr::extract您可以指定如何拆分两列的正则表达式。

tidyr::extract(df, ID, c('n', 'view'), '(\\d+)(.*)', convert = TRUE)
  n view length
1 1    a    5.5
2 1         6.7
3 2    b    7.1
4 2    c    8.2
5 1 yolk    4.5
6 3         2.2
7 3 yolk    3.5

推荐阅读