Как отделить заголовок от года, когда заголовок продолжается в несколько столбцов, разделенных символом "\" - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть набор данных imdb.csv, и я хочу отделить заголовок от года в разных столбцах. Проблема в том, что в некоторых случаях заголовок заканчивается на «\», и ​​в этих случаях заголовок продолжается в следующем столбце. Какие могут быть способы разделения года и строки, предшествующей году?

enter image description here

Как видно в некоторых строках, заголовок даже продолжает колонка URL. Что может быть лучшим способом решения этой проблемы?

Вот код, где я пытался переместить каждую запись столбца в предыдущий столбец (в случае, если запись заголовка заканчивается на «\»).

for(i in 3:ncol(imdb)) {
                        if(str_detect(imdb$title, "\\\\$")) {
                         title <- substr(x = imdb$title, start = 1, 
                                         stop = nchar(as.character(imdb$title))-1)
                         title <- paste(title, imdb[i], sep = "")
                        }}
                        imdb$title <- title
                                for (i in 3:(ncol(imdb))-1) {
                                                        imdb[, i]  = imdb[, i+1]    
                                                              }

Но код выдает предупреждение:

In if (str_detect(title, "\\\\$")) { ... :
  the condition has length > 1 and only the first element will be used

Означает ли это, что если можно использовать только для одной строки, а не для столбца? Я попытался обернуть это для цикла, но снова произошла какая-то ошибка.

1 Ответ

0 голосов
/ 20 апреля 2020

Не уверен, что это поможет, но может быть лучше вставить всю строку вместе, а затем извлечь год:

library(stringr)

test <-  c("aaa hh \\ hhf \\(1984)", "aaad \\(1234)")

str_extract(test, "(\\d{4})")
[1] "1984" "1234"

Аналогично, вы можете удалить годы в исходной строке, используя gsub.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...