R 中的文本分割

问题描述 投票:0回答:1
item<-c("A","B")
Type<-c("P400","1200C")

> test_df<-data.frame(item, Type)
> test_df
  item  Type
1    A  P400
2    B 1200C

test_df<-test_df |> tidyr::separate(Type, into = c("A", "B"), sep = "(?<=[0-9])(?=[A-Za-z])")

> test_df
  item    A    B
1    A P400 <NA>
2    B 1200    C

大家好,使用

tidyr::separate
,我可以将 test_df$Type 拆分为数字和文本,代码将 1200C 拆分为 1200 & C,但是,对于 P400,我期望 P & 400,但返回 NA。 你能帮我一下吗?干杯。

r split
1个回答
0
投票

另一种可能适合您的方法:

library(tidyverse)
test_df |> 
  mutate(A = parse_number(Type),
         B = Type |> str_remove(as.character(A)))


  item  Type    A B
1    A  P400  400 P
2    B 1200C 1200 C
© www.soinside.com 2019 - 2024. All rights reserved.