Всплыла такая задача: имеется таблица (экспорт из базы данных) опробования по скважинам. Каждой пробе присвоен свой ID породы (тип "integer"). Необходимо сделать следующее:
1. разным породам в среде R автоматически присвоить разные цвета (т.е. не забивать вручную более 50-ти пород). Цвета желательно брать с наибольшим разбросом по палитре (чтобы на графиках породы хорошо различались);
2. работать с присвоенными цветами так, чтобы привязка к породам сохранялась и после логических операций с исходной таблицей (например - выбор определённых пород из одной таблицы в другую должен сохранять ПЕРВИЧНЫЕ УРОВНИ фактора цветов).
Помогите пожалуйста выработать последовательность действий!
Присвоение цветов признакам с последующим сохранением
-
- Активный участник
- Сообщения: 117
- Зарегистрирован: 31 окт 2011, 00:18
- Репутация: 14
- Откуда: Кривий Ріг
-
- Гуру
- Сообщения: 4168
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Присвоение цветов признакам с последующим сохранением
foo<-colors() создаст вектор из 657 имен цветов, случайно выбрать индексы можете с помощью sample(1:length(foo),50). Выведите цвета, несколько раз сеткой квадратиков 5х5 (установив предварительно par(mfrow = c(5,5)) Которые не понравятся, замените руками, и запомните вектор цветов (сохраните в файл)ymr3R9Jge писал(а):1. разным породам в среде R автоматически присвоить разные цвета (т.е. не забивать вручную более 50-ти пород).
сделайте таблице перекодировки из двух столбцов, в первом - коды пород, во втором - цвета. Номера строк получите из столбцов кодов с помощью ind<-match(data_base$code,recore[,1]), столбец цветов - recode[ind,2]2. работать с присвоенными цветами так, чтобы привязка к породам сохранялась
Помогите пожалуйста выработать последовательность действий!
как-то так ...
-
- Активный участник
- Сообщения: 117
- Зарегистрирован: 31 окт 2011, 00:18
- Репутация: 14
- Откуда: Кривий Ріг
Re: Присвоение цветов признакам с последующим сохранением
Всё равно не понял... Я создал таблицу "порода-цвет" из двух символьных векторов длиной 52 значения (52 типа пород).
При сортировке из первичной таблицы данных я выбираю пробы по породам DF, MN, TC и ZF. Получается таблица из 350-ти строк. Как теперь присвоить породам в этой таблице цвета в соответсвии с таблицей "порода-цвет"?
Второй вопрос - для того, чтобы нормально создавать легенды в функции "plot" нужно, чтобы индексы пород и цветов были строго привязаны к уровням факторов. Как правильно удалить пустые уровни в факторах "порода" и "цвет", чтобы они не сместились относительно друг-друга (ручной перебор не в счёт)?
При сортировке из первичной таблицы данных я выбираю пробы по породам DF, MN, TC и ZF. Получается таблица из 350-ти строк. Как теперь присвоить породам в этой таблице цвета в соответсвии с таблицей "порода-цвет"?
Второй вопрос - для того, чтобы нормально создавать легенды в функции "plot" нужно, чтобы индексы пород и цветов были строго привязаны к уровням факторов. Как правильно удалить пустые уровни в факторах "порода" и "цвет", чтобы они не сместились относительно друг-друга (ручной перебор не в счёт)?
-
- Гуру
- Сообщения: 4168
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1107
- Ваше звание: программист
- Откуда: Казань
Re: Присвоение цветов признакам с последующим сохранением
пусть ее зовут recodeymr3R9Jge писал(а):Всё равно не понял... Я создал таблицу "порода-цвет" из двух символьных векторов длиной 52 значения (52 типа пород).
При сортировке из первичной таблицы данных я выбираю пробы по породам 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]
как-то так ...
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя