Я столкнулся со странной проблемой при просмотре веб-страниц с помощью rvest.
Я нацарапал следующее имя: "Abdichter/in EFZ", которое сначала выглядело нормально. Однако, когда я записал файл в csv, я обнаружил «-» между буквами. В Excel это слово выглядело так: Ab-dich-ter/in EFZ.
Итак, я сделал str_split(x, "") и обнаружил, что строка на самом деле выглядит так:
c("A", "b", "", "d", "i", "c", "h", "", "t", "e", "r", "/", "i", "n", " ", "E", "F", "Z")
Я попытался получить пустые строки из строки, но мне это не удалось. Я старался:
my_string <- str_split(my_string , "")
а потом
paste0(my_string[my_string != ""])
но это не помогло.
Поэтому мне интересно:
Редактировать: это страница в Интернете.
И вот как я получил строку:
library(rvest)
read_html("https://berufskunde.com/ausbildungsberufe/ausbildung-abdichter.html", encoding = "UTF-8") %>%
html_nodes(".section") %>%
html_nodes(".text-rot") %>%
html_text()
@akrun, спасибо. Но это не работает.
Я думаю, что у вашего "" другой характер. Вам может понадобиться v1[trimws(v1) != ""] Здесь 'v1' - это разделенный вектор символов.
Одной из возможных проблем может быть "" по сравнению с " " (пробел между двумя кавычками). Для меня во многих случаях мне нужно использовать " "
Нет, это не космический символ.
вы можете попробовать x[grepl("[[:alnum:]]|/", x)] Он возвращает все элементы, которые содержат букву или цифру плюс косую черту.





Строка, которую вы наблюдаете, — это не пустая строка, а символ МЯГКИЙ ДЕФЕС (U+00AD). Предполагается, что он отображается только тогда, когда слово разбито на строки, но некоторые редакторы не справляются с этим правильно, поэтому он, вероятно, отображается при просмотре CSV.
В любом случае вы, вероятно, захотите удалить его из своей строки:
str = gsub('\U00AD', '', str)
@Roccer Если вы знаете о поведении этого символа мягкого дефиса, ваше описание, скорее всего, так и было. И поскольку вы разместили воспроизводимый пример (отлично!), это было легко проверить. Для справки, также может помочь проверить значения байтов строки через charToRaw, но это помогает, только если вы знаете, что искать.
Попробуйте с
x[nzchar(x)]