Страница 1 из 1
Вычисления по значениям строк таблицы
Добавлено: 24 сен 2020, 23:42
VistaSV30
Здравствуйте!
Подскажите как вычислить значение функции для строк
Код: Выделить всё
dd <- data.frame(a=1:10, b=5:14)
dd$Avg <- ????
Должно получится
Спасибо!
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-семья" здесь Вам и не требуется:
Re: Вычисления по значениям строк таблицы
Добавлено: 26 сен 2020, 15:14
gamm
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) мне вполне подходит.
Спасибо еще раз за помощь!