2017-02-09 2 views
0

у меня есть текстовый файл (remove.txt) с таким родом данных (это RGB Hex цвета):Transform dput (удалить) data.frame из текстового файла в R объект с запятыми

"#DDDEE0", "#D8D9DB", "#F5F6F8", "#C9CBCA"... 

которые являются цветами I не хочу анализировать.

И у меня есть объект R (nacreHEX) с другими данными, как в файле, но есть в этом хорошие цвета и цвета, которые я не хочу анализировать. Поэтому я использую этот код для их удаления:

nacreHEX <- nacreHEX [! nacreHEX %in% remove].

работы Это когда remove является R объект как этот remove <- c("#DDDEE0", "#D8D9DB"...), но она не работает, когда он пришел из текстового файла, и я изменить его в data.frame, и ни когда я пытаюсь с remove2 <-as.vector(t(remove)).

Так что мой код:

remove <- read.table("remove.txt", sep=",") 
remove2 <-as.vector(t(remove)) 
nacreHEX <- nacreHEX [! nacreHEX %in% remove2] 
head(nacreHEX) 

С этим нет никаких запятых с as.vector, так может быть, поэтому он не работает.

Как я могу сделать вектор R с комами с данными такого типа? Какой этап я забыл?

+0

Если у вашего текстового файла есть пробелы в нем, как вы показываете, то эти пробелы могут вызвать проблему. Попробуйте запустить 'trimws()' на вашем vector-from-data.frame. Это просто догадка прямо сейчас - было бы очень ясно, если вы опубликуете 'dput (remove)' в своем вопросе, где 'remove' является выходом' read.table'. – Gregor

+0

И это работает! Я сделал редактирование. Спасибо @ Gregor. –

ответ

0

Проблема заключается в том, что ваш txt-файл разделен ", " не ",'. Пространства в конечном итоге в строке:

rr = read.table(text = '"#DDDEE0", "#D8D9DB", "#F5F6F8", "#C9CBCA"', sep = ",") 
(rr = as.vector(t(rr))) 
# [1] "#DDDEE0" " #D8D9DB" " #F5F6F8" " #C9CBCA" 

Вы можете увидеть начальные пробелы перед #. Мы можем обрезать эти пространства с помощью trimws().

trimws(rr) 
# [1] "#DDDEE0" "#D8D9DB" "#F5F6F8" "#C9CBCA" 
Смежные вопросы