ошибка: unexpected '=' in if

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

ошибка: unexpected '=' in if

Сообщение SS_Rebelious »

Имеется набор данных, значения которых изменяются по определённому правилу. Нужно определить в какой группе сильнее всего изменилось среднее значение и вычислить долю на которую это значение возросло. Собственно, возникли проблемы с использованием "if" для определения значения старого среднего (avw), на которое нужно делить самое большое значение dav.

ошибка:

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

> if (m = dav11) {n <- avw1}
Error: unexpected '=' in "if (m ="
> else if (m = dav22) {n <- avw2}
Error: unexpected 'else' in "else"
> else {n <- avw3}
Error: unexpected 'else' in "else"
Сам код:

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

g1 <- c(4, 6, 7) #группа №1
g2 <- c(1, 5, 9) #группа №2
g3 <- c(4, 4, 5) #группа №3
dg1 <- data.frame(g1)
dg2 <- data.frame(g2)
dg3 <- data.frame(g3)

z <- 1/3

# вычисляем изменения, произошедшие в значениях
w1 <- dg1*z
sw1 <- sum(w1)
pw1 <- w1/sw1
avw1 <- mean(dg1$g1)
avw11 <- sum(dg1$g1*pw1$g1)
dav11 <- avw11-avw1 #искомые изменения для сравнения

w2 <- dg2*z
sw2 <- sum(w2)
pw2 <- w2/sw2
avw2 <- mean(dg2$g2)
avw22 <- sum(dg2$g2*pw2$g2)
dav22 <- avw22-avw2 #искомые изменения для сравнения

w3 <- dg3*z
sw3 <- sum(w3)
pw3 <- w3/sw3
avw3 <- mean(dg3$g3)
avw33 <- sum(dg3$g3*pw3$g3)
dav33 <- avw33-avw3 #искомые изменения для сравнения

# вычисляем максимальные изменения
m <- max(dav11, dav22, dav33) # до этого момента всё работает прекрасно

# проблемы начинаются здесь:
# так как максимальный "dav" должен делиться на соответствующий именно ему "avw",
# вводим соответствующее условие
if (m = dav11) {n <- avw1}
else if (m = dav22) {n <- avw2}
else {n <- avw3}

answer <- m/n
Последний раз редактировалось SS_Rebelious 08 май 2012, 22:28, всего редактировалось 1 раз.
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!
Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9129
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 748
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: ошибка: unexpected '=' in if

Сообщение Максим Дубинин »

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

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

Re: ошибка: unexpected '=' in if

Сообщение SS_Rebelious »

Спасибо!
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!
Ответить

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

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

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