Страница 1 из 1
Присвоение цветов признакам с последующим сохранением
Добавлено: 25 мар 2012, 13:51
ymr3R9Jge
Всплыла такая задача: имеется таблица (экспорт из базы данных) опробования по скважинам. Каждой пробе присвоен свой ID породы (тип "integer"). Необходимо сделать следующее:
1. разным породам в среде R автоматически присвоить разные цвета (т.е. не забивать вручную более 50-ти пород). Цвета желательно брать с наибольшим разбросом по палитре (чтобы на графиках породы хорошо различались);
2. работать с присвоенными цветами так, чтобы привязка к породам сохранялась и после логических операций с исходной таблицей (например - выбор определённых пород из одной таблицы в другую должен сохранять ПЕРВИЧНЫЕ УРОВНИ фактора цветов).
Помогите пожалуйста выработать последовательность действий!
Re: Присвоение цветов признакам с последующим сохранением
Добавлено: 25 мар 2012, 17:37
gamm
ymr3R9Jge писал(а):1. разным породам в среде R автоматически присвоить разные цвета (т.е. не забивать вручную более 50-ти пород).
foo<-colors() создаст вектор из 657 имен цветов, случайно выбрать индексы можете с помощью sample(1:length(foo),50). Выведите цвета, несколько раз сеткой квадратиков 5х5 (установив предварительно par(mfrow = c(5,5)) Которые не понравятся, замените руками, и запомните вектор цветов (сохраните в файл)
2. работать с присвоенными цветами так, чтобы привязка к породам сохранялась
Помогите пожалуйста выработать последовательность действий!
сделайте таблице перекодировки из двух столбцов, в первом - коды пород, во втором - цвета. Номера строк получите из столбцов кодов с помощью ind<-match(data_base$code,recore[,1]), столбец цветов - recode[ind,2]
как-то так ...
Re: Присвоение цветов признакам с последующим сохранением
Добавлено: 26 мар 2012, 17:07
ymr3R9Jge
Всё равно не понял... Я создал таблицу "порода-цвет" из двух символьных векторов длиной 52 значения (52 типа пород).
При сортировке из первичной таблицы данных я выбираю пробы по породам DF, MN, TC и ZF. Получается таблица из 350-ти строк. Как теперь присвоить породам в этой таблице цвета в соответсвии с таблицей "порода-цвет"?
Второй вопрос - для того, чтобы нормально создавать легенды в функции "plot" нужно, чтобы индексы пород и цветов были строго привязаны к уровням факторов. Как правильно удалить пустые уровни в факторах "порода" и "цвет", чтобы они не сместились относительно друг-друга (ручной перебор не в счёт)?
Re: Присвоение цветов признакам с последующим сохранением
Добавлено: 26 мар 2012, 18:57
gamm
ymr3R9Jge писал(а):Всё равно не понял... Я создал таблицу "порода-цвет" из двух символьных векторов длиной 52 значения (52 типа пород).
пусть ее зовут recode
При сортировке из первичной таблицы данных я выбираю пробы по породам DF, MN, TC и ZF. Получается таблица из 350-ти строк.
пусть ее зовут data, а стобец, к котором породы, code
Как теперь присвоить породам в этой таблице цвета в соответствии с таблицей "порода-цвет"?
пусть столбец цветов зовут color, тогда
ind<-match(data$code,recode[,1])
ind[is.na(ind)]<-1 # тем кодам, которых не нашли, в т.ч. NA, пустым, и т.д. присваиваем цвет номер 1
data$color<-recode[ind,2]
как-то так ...