r - 基于特定空间的正则表达式 - R (dplyr::separate)
问题描述
我想根据特定空间分隔一列。
例如,我不想在每个空间中分开,但只有在空间满足一定条件时才分开。
我试图将满足条件的每个空间分开,但这会删除空间和条件。例如,如果我尝试删除前面有一个字母的每个空格,然后是一个数字,这会删除字母、空格和数字。
在我尝试使用与 dplyr 分开的代码中,但如果有另一个最佳解决方案,我会采取!
提前致谢!
代码
library(tidyverse)
df <- tibble(
column = c("Current Assets 3a 10.001", "Cash and Equivalents 2b 1.009", "Debt 2.050" )
)
df %>%
dplyr::separate(value,
into = c("column1","column2","column3"),
sep = 'insert regex pattern here')
#Ideally i would want something like that
tibble(
column1 = c("Current Assets", "Cash and Equivalents", "Debt"),
column2 = c("3a", "2b", NA),
column3 = c(10.001, 1.009, 2.050)
)
解决方案
您可以在tidyr::extract
.
tidyr::extract(df, column, c("column1","column2","column3"),
'(.*?)\\s(\\d[a-z])?\\s?(\\d+\\.\\d+)', convert = TRUE)
# column1 column2 column3
# <chr> <chr> <dbl>
#1 Current Assets "3a" 10.0
#2 Cash and Equivalents "2b" 1.01
#3 Debt "" 2.05
推荐阅读
- xml - XSLT 根据属性值将元素复制到另一个
- mysql - mysqli查询基于4个不同表的优先级排序
- cassandra - Cassandra读一致性是一个,但是节点连接到另一个节点
- ios - Swift:UICollectionViewCell 中的 UIButton 图像不会改变
- unix - 替换文本文件中不以特定字符开头的行上的特定列
- python - 如何在python中找到二维数组中元素的行和列?
- menu - 在 abp.io 框架中将菜单添加到角色中
- c++ - 使用 std::cout 和 printf 打印 nullptr
- c# - 如果更改了 IEnumerable 数据源,它会更改结果
- angular - 带有辅助路由的解析器