#r #excel #space
#r #excel #Космос
Вопрос:
У меня есть лист Excel со столбцами, где некоторые записи содержат в конце строки пробел. Например: «SS» и «SS», последний с пробелом. Это видно, только если я щелкну в ячейке. Когда я пытаюсь заменить пробел с помощью пробела на «» и ctrl h, он не находит пробел. Очевидно, что это не общее пространство. Я попытался вставить общий пробел где-нибудь еще (с помощью пробела), и я могу найти это (пробел)-пробел. Итак, я предполагаю, что это особый пробел. Если я скопирую пробел в этой ячейке и использую его с помощью ctrl h, я могу заменить его на «».
Когда я импортирую лист Excel в R (используя ess-emacs) перед заменой, я получаю следующие записи:
Подчеркивание не является обычным подчеркиванием и не может быть заменено на «» с помощью sub
. Теперь мне интересно, что это за пробел и как я могу справиться с этим в R (то есть удалить этот пробел / подчеркивание).
Комментарии:
1. Особенно, если источником данных является html или веб-документ, эти пробелы часто являются
NBSP
кодом160
. Вы можете найти / заменить их в Excel, введя код в поле поиска, удерживая клавишуalt
во время ввода0160
на цифровой клавиатуре2. @RonRosenfeld Спасибо. Это так!
Ответ №1:
Я не могу гарантировать, что это сработает (поскольку Unicode и т.д. обработка может варьироваться от платформы к платформе), но ?trimws
предполагает, что использование whitespace = "[\h\v]"
будет работать:
> z <- data.frame(1:2,2:3)
> names(z) <- c("a ","bu00a0") ## column name with Unicode space
> z
a b
1 1 2
2 2 3
> names(z)
[1] "a " "b "
> trimws(names(z)) ## default doesn't remove space after 'b'
[1] "a" "b "
> trimws(names(z), whitespace="[\h\v]")
[1] "a" "b"