Вычисления по значениям строк таблицы

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

Вычисления по значениям строк таблицы

Сообщение VistaSV30 » 24 сен 2020, 23:42

Здравствуйте!

Подскажите как вычислить значение функции для строк

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

dd <- data.frame(a=1:10, b=5:14)
dd$Avg <- ????
Должно получится

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

a b Avg
1 5    3
2 6    4
...    ...
Спасибо!
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane

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

Re: Вычисления по значениям строк таблицы

Сообщение gamm » 25 сен 2020, 04:35

dd$Avg=apply(dd,1,mean)

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

Re: Вычисления по значениям строк таблицы

Сообщение VistaSV30 » 25 сен 2020, 09:54

Спасибо большое! Всё работает!
Запишу для себя, чтоб запомнить

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

df <- data.frame(a=1:10, b=5:14)
df$Avg <- apply(df, 1, mean)
dv <- apply(df, 2, mean)
df <- rbind(df, dv)
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane

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

Re: Вычисления по значениям строк таблицы

Сообщение VistaSV30 » 26 сен 2020, 12:06

А можно с помощью функций apply вычислить значение функции не для всех строк, а например, только с 1 по 4?
Вот для этой таблицы, для столбца n2 вычислить среднее для значений из строк с 1 по 4 = 9.2

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

df <- data.frame(n1=1:5, n2=10:14)

  n1 n2
1  1 10
2  2 11
3  3 12
4  4 13
5  5 14
Спасибо!
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane

nickleb
Гуру
Сообщения: 964
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Re: Вычисления по значениям строк таблицы

Сообщение nickleb » 26 сен 2020, 12:20

VistaSV30 писал(а):
26 сен 2020, 12:06
ля столбца n2 вычислить среднее для значений из строк с 1 по 4 = 11.5
... если я правильно понял, - так "apply-семья" здесь Вам и не требуется:

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

mean(df$n2[1:4])

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

Re: Вычисления по значениям строк таблицы

Сообщение gamm » 26 сен 2020, 15:14

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

apply(df[1:4,"n2"], 2, mean)

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

Re: Вычисления по значениям строк таблицы

Сообщение VistaSV30 » 28 сен 2020, 09:55

Так выдает ошибку
gamm писал(а):
26 сен 2020, 15:14
apply(df[1:4,"n2"], 2, mean)
А так получается как надо:

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

df <- data.frame(n1=1:5, n2=10:14)
apply(df[1:4,], 2, mean) # по всем столбцам
apply(df[1:4,][2], 2, mean) # по одному столбцу
Последний раз редактировалось VistaSV30 28 сен 2020, 10:07, всего редактировалось 1 раз.
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane

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

Re: Вычисления по значениям строк таблицы

Сообщение gamm » 28 сен 2020, 10:02

VistaSV30 писал(а):
28 сен 2020, 09:55
Так выдает ошибку
поскольку столбец один, он упрощается и превращается в вектор. Нужно в matrix(...,ncol=1) обернуть, либо просто использовать mean()

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

Re: Вычисления по значениям строк таблицы

Сообщение VistaSV30 » 28 сен 2020, 10:10

По возможности и необходимости потом еще поэкспериментирую, но пока вариант с apply(df[1:4,], 2, mean) мне вполне подходит.
Спасибо еще раз за помощь!
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane

Ответить

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

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

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