Хобрук: Ваш путь к мастерству в программировании

Среднее значение одного столбца на основе уровня другого столбца (столбцов) в циклах

Возьмите среднее значение последнего столбца (C5) mf на основе каждого фактора (в данном случае от C1 до C4, если файлы данных разные, поэтому нет необходимости что-либо менять, они должны изменяться автоматически, потому что мы будем использовать циклы для присвоения имени и расчета.

результат будет таким: Среднее значение C1 при уровне 1 равно 5,5 Среднее значение C1 при уровне 2 равно 3,5 Среднее значение C2 при уровне 1 равно 6,5 Среднее значение C2 при уровне 2 равно 2,5 Среднее значение C3 при уровне 1 равно 4 Среднее значение C3 при уровне 2 равно 5

Я хочу быть общей программой, поэтому, когда мы изменим данные, в программе не будет никаких изменений, сумма будет основана на новых данных. Ни один фактор и уровень не могут быть изменены в новых данных.

# call excel file containing orthogonal profile
pf <- read.csv(file="pfile2.csv",head=FALSE,sep=",") 
# call excel file response / data 
rs <- read.csv(file="respf2.csv",head=FALSE,sep=",")
# Merge orthogonal arrays  and response in a single file
mf= merge(pf, rs, by="V1")
# Change the name of the new file/merge file all column contain word Cx
names(mf)<-sprintf("C%d",1:length(mf))
# total variable and total data 
tc=NCOL(mf)
tr=NROW(mf)
pf
  V1 V2 V3 V4
1  1  1  1  1
2  2  1  1  2
3  3  1  2  1
4  4  1  2  2
5  5  2  1  1
6  6  2  1  2
7  7  2  2  1
8  8  2  2  2

rs
   V1 V2
1  1  8
2  2  7
3  3  4
4  4  3
5  5  6
6  6  5
7  7  2
8  8  1

mf
   C1 C2 C3 C4 C5
1  1  1  1  1  8
2  2  1  1  2  7
3  3  1  2  1  4
4  4  1  2  2  3
5  5  2  1  1  6
6  6  2  1  2  5
7  7  2  2  1  2
8  8  2  2  2  1

tc
[1] 5
tr
[1] 8
r
17.10.2011

  • Подсказка в следующий раз: вы могли бы использовать dput(mf), а затем вставить вывод в свой вопрос. Таким образом, люди могли легко копировать и вставлять его и работать с вашими реальными данными. 17.10.2011

Ответы:


1

Довольно просто и может быть сделано без загрузки каких-либо других пакетов.

aggregate(C5 ~ C2, mf, mean)
aggregate(C5 ~ C3, mf, mean)
aggregate(C5 ~ C4, mf, mean)

Должен доставить вас туда. Не проверял, так как не было времени вводить ваши данные, см. мой комментарий к вашему вопросу.

17.10.2011
Новые материалы

Я собираюсь научить вас Python шаг за шагом
Привет, уважаемый энтузиаст Python! 👋 Готовы погрузиться в мир Python? Сегодня я приготовил для вас кое-что интересное, что сделает ваше путешествие более приятным, чем шарик мороженого в..

Альтернатива шаблону исходящих сообщений для архитектуры микросервисов
Познакомьтесь с двухэтапным сообщением В этой статье предлагается альтернативный шаблон для папки Исходящие : двухэтапное сообщение. Он основан не на очереди сообщений, а на..

React on Rails
Основное приложение Reverb - это всеми любимый монолит Rails. Он отлично обслуживает наш API и уровень просмотра трафика. По мере роста мы добавляли больше интерактивных элементов..

Что такое гибкие методологии разработки программного обеспечения
Что представляют собой гибкие методологии разработки программного обеспечения в 2023 году Agile-методологии разработки программного обеспечения заключаются в следующем: И. Введение A...

Ториго  — революция в игре Го
Наш следующий вызов против ИИ и для ИИ. Сможет ли он победить людей в обновленной игре Го? Обратите внимание, что в следующей статье AI означает искусственный интеллект, а Goban  —..

Простое развертывание моделей с помощью Mlflow — Упаковка классификатора обзоров продуктов NLP от HuggingFace
Как сохранить свои модели машинного обучения в формате с открытым исходным кодом с помощью MLFlow, чтобы позже получить возможность легкого развертывания. Сегодня модели упаковки имеют несколько..

Математика и интуиция - Часть 1
У каждой математической формулы есть доказательство. Часто эти доказательства слишком сложно понять, поскольку многие из них основаны на индукции, некоторые - на очень сложных наблюдениях, а..