Создание цикла для таблицы данных

Вопросы по статистическому пакету R. Не обязательно гео.
Ответить
ymr3R9Jge
Активный участник
Сообщения: 117
Зарегистрирован: 31 окт 2011, 00:18
Репутация: 14
Откуда: Кривий Ріг

Создание цикла для таблицы данных

Сообщение ymr3R9Jge » 11 сен 2012, 00:58

Помогите, пожалуйста, сконструировать цикл из нескольких условий для таблицы данных. Имеется data.frame "table" из нескольких столбцов: "Fe", "poroda", "sort" (данные относятся к геологии). Требуется создать условие для заполнения столбца "sort":
Если table$Fe>=16 и table$Fe<18 и table$poroda==2, тогда table$sort==1,
Если table$Fe>=18 и table$Fe<20 и table$poroda==2, тогда table$sort==2,
Если table$Fe>=18 и table$Fe<20 и table$poroda==3, тогда table$sort==3,
Иначе table$sort==4
Пробовал несколько вариантов, но запустить так и не смог...

Аватара пользователя
SS_Rebelious
Гуру
Сообщения: 1304
Зарегистрирован: 24 фев 2009, 16:51
Репутация: 99
Ваше звание: GIS pro-fan
Откуда: Lahti / Газ-ПУТИНбург
Контактная информация:

Re: Создание цикла для таблицы данных

Сообщение SS_Rebelious » 11 сен 2012, 14:54

Что-то в этом роде:

Код: Выделить всё

  table.new <- within(table, {
table$sort <- ifelse( (table$Fe>=16 && table$Fe<18 && table$poroda==2), 1, table$sort)
table$sort <- ifelse( (table$Fe>=18 && table$Fe<20 && table$poroda==2), 2, table$sort)
table$sort <- ifelse( (table$Fe>=18 && table$Fe<20 && table$poroda==3), 3, table$sort)
table$sort <- ifelse( !( (table$sort %in% c(1, 2, 3))), 4, table$sort)
})
Look for something long enough, and you will find it. Look for something without understanding, and it will find you...
"All paid jobs absorb and degrade the mind." Aristotle
If you take 1 step towards freedom it'll take 2 steps towards you!

gamm
Гуру
Сообщения: 4057
Зарегистрирован: 15 окт 2010, 08:33
Репутация: 1054
Ваше звание: программист
Откуда: Казань

Re: Создание цикла для таблицы данных

Сообщение gamm » 16 сен 2012, 20:38

а можно не мудрить (чтобы скобки не считать):

Код: Выделить всё

    table$sort <-4
    table$sort[ (table$Fe>=16 && table$Fe<18 && table$poroda==2)] <-1
...
 

Аватара пользователя
VistaSV30
Активный участник
Сообщения: 185
Зарегистрирован: 02 июл 2018, 15:05
Репутация: 7
Откуда: Балашиха

Re: Создание цикла для таблицы данных

Сообщение VistaSV30 » 20 апр 2020, 19:10

Что-то поменялось?

У меня это заработало только когда я && заменил на &
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane

Ответить

Вернуться в «R»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 12 гостей