Страница 1 из 1

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

Добавлено: 24 сен 2020, 23:42
VistaSV30
Здравствуйте!

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

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

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

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

a b Avg
1 5    3
2 6    4
...    ...
Спасибо!

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

Добавлено: 25 сен 2020, 04:35
gamm
dd$Avg=apply(dd,1,mean)

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

Добавлено: 25 сен 2020, 09:54
VistaSV30
Спасибо большое! Всё работает!
Запишу для себя, чтоб запомнить

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

df <- data.frame(a=1:10, b=5:14)
df$Avg <- apply(df, 1, mean)
dv <- apply(df, 2, mean)
df <- rbind(df, dv)

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

Добавлено: 26 сен 2020, 12:06
VistaSV30
А можно с помощью функций 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
Спасибо!

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

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

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

mean(df$n2[1:4])

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

Добавлено: 26 сен 2020, 15:14
gamm

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

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

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

Добавлено: 28 сен 2020, 09:55
VistaSV30
Так выдает ошибку
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) # по одному столбцу

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

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

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

Добавлено: 28 сен 2020, 10:10
VistaSV30
По возможности и необходимости потом еще поэкспериментирую, но пока вариант с apply(df[1:4,], 2, mean) мне вполне подходит.
Спасибо еще раз за помощь!