У меня есть вопрос, в настоящее время я пытаюсь разбить ячейки в файле Excel таким образом, чтобы я мог разбить каждую строку, если эта строка начинается с цифры (и плюс для двузначных чисел), а за номером следует путем полной остановки ".", то есть определяется регулярным выражением, определенным в этой функции. Однако когда происходит фактическое разбиение, выходные данные повторяются (зацикливаются) на основе других столбцов.
Здесь вы можете найти мои входные данные , токовый выход , и это желаемый выход .
# Load libraries
library('tidyverse')
library('readxl')
library('openxlsx')
# Set functions
do_split = function(x, pattern = "\\d+\\.\\s{1}"){
if( is_tibble(x) ){ x = pull(x) }
num_bullets = x %>% str_extract_all("\\d+\\. ") %>% unlist
x %>% str_split(pattern) %>% unlist %>% .[.!=""] %>% str_c(num_bullets,.) %>% list %>% return
}
# Read data
df = read_excel(path = '~/Desktop/master.xlsx')
# Wrangle data
o = df %>%
mutate(Result = Result %>% do_split, Steps = Steps %>% do_split) %>%
unnest(Result, Steps)
# Output file
write.xlsx(x = o, file = “out.xlsx”)