Мне нужна помощь, отбрасывая пустые строки и строки с пустыми пробелами из dataframe - PullRequest
0 голосов
/ 09 февраля 2019

Я пытаюсь удалить все пустые строки из моего кадра данных.Проблема в том, что строки не совсем пустые, некоторые имеют один пробел, другие - несколько пробелов и новые строки.

Вот примеры:

new_tweetsdf[[35]]
[1] " \n                  \n \n"
#second example
new_tweetsdf[[102]]
[1] " \n"
#third example
new_tweetsdf[[188]]
[1] " "
#fourth example
new_tweetsdf[[4671]]
[1] "\n\n"
#fourth example
new_tweetsdf[[11326]]
[1] "\n\n\n\n"
#fifth example
new_tweetsdf[[27137]]
[1] "\n\n\n\n \n"

Я пробовал несколько решений.Сначала я попытался удалить все пустые строки без пробелов

new_tweetsdf <- new_tweetsdf[rowSums(new_tweetsdf==" ") | rowSums(new_tweetsdf=="") !=ncol(new_tweetsdf), ] 

Но у меня остались пустые строки, содержащие \ n или несколько строк.Это также затрудняет удаление строк на основе количества символов

Я также думал об удалении всех строк, которые не начинаются с буквы

new<- new_tweetsdf[grep('^[a-z]',new_tweetsdf)]

Однако при этом удаляется около 5-й из моихстрок, по наблюдениям, маловероятно, что в моем фрейме данных столько пустых мест.Это, вероятно, также удаляет строки, которые начинаются с пробела, но на самом деле имеют буквы

Вот ссылка на данные, которые я использую: Данные

1 Ответ

0 голосов
/ 09 февраля 2019

Вы можете удалить все индексы с помощью простого регулярного выражения.

pattern = "^[[:space:]]*$"

Этот шаблон будет соответствовать всем строкам, которые содержат только «Пробел, табуляция, вертикальная табуляция, новая строка, перевод формы и возврат каретки».Поэтому нам нужно инвертировать наш результат, так как мы хотим обратного.

new <- new_tweetsdf[grep(pattern, new_tweetsdf, invert = TRUE)]
...