这是我的数据框:
df <- tibble(col1 = c("1. word","2. word","3. word","4. word","5. N. word","6. word","7. word","8. word"))
Run Code Online (Sandbox Code Playgroud)
我需要使用单独的函数分成两列,并将它们重命名为Numbers和 其他称为Words. 我已经这样做了,但它不起作用:
df %>% separate(col = col1 , into = c('Number','Words'), sep = "^. ")
Run Code Online (Sandbox Code Playgroud)
问题是第五个有 2 个点。我不知道如何处理有关正则表达式的问题。
有什么帮助吗?
一种tidyverse方法是首先清理数据,然后分离。
df %>%
mutate(col1 = gsub("\\s.*(?=word)", "", col1, perl=TRUE)) %>%
tidyr::separate(col1, into = c("Number", "Words"), sep="\\.")
Run Code Online (Sandbox Code Playgroud)
结果:
# A tibble: 8 x 2
Number Words
<chr> <chr>
1 1 word
2 2 word
3 3 word
4 4 word
5 5 word
6 6 word
7 7 word
8 8 word
Run Code Online (Sandbox Code Playgroud)