Как рассчитать среднее с помощью R-программирования - PullRequest
0 голосов
/ 30 апреля 2020

i wi sh для вычисления среднего значения столбца с учетом условия другого столбца

Например, среднее значение столбца 2, когда столбец 1 = мужчина Это будет означать: (69 + 55 + 60) / 3

Однако я не совсем уверен, как использовать команду.

Это мой код: mean(Column2[,2](which(Column1[,1]=="M")))

Пожалуйста, добрый совет, спасибо!

Кроме того, я приложил упрощенную версию данных, которые я делаю. введите описание изображения здесь enter image description here

Ответы [ 4 ]

0 голосов
/ 01 мая 2020
# Data frame set up:
gender <- as.factor(c('F','F','M','M','M'))
weight <- c(50,44,69,55,60)
height <- c(160,165,179,185,177)
(df <- data.frame(gender,weight,height))

# Actual calculation:
mean(df[df$gender=='M',2])
# 61.333
0 голосов
/ 01 мая 2020

Вы можете использовать tapply, который применяет функцию - здесь, mean - к таблице:

tapply(df$Weight, df$Sex, mean)

В результате получается средний вес на пол:

       F        M 
47.00000 61.33333
0 голосов
/ 01 мая 2020

Есть много способов сделать это. Вы можете подмножество, вы можете агрегировать, вы можете ddply, и многое другое!

df <- data.frame(Sex = c("F","F","M","M","M"),
                 Weight = c(50,44,69,55,60),
                 Height = c(160,165,179,185,177))
female <- subset(df, Sex == "F")
mean(female$Weight)
male <- subset(df, Sex == "M")
mean(male$Weight)
aggregate(df$Weight, list(df$Sex), mean)
library(plyr)
ddply(df, "Sex", summarise, mean = mean(Weight))
0 голосов
/ 01 мая 2020

Может быть aggregate - это то, что вы ищете

dfout <- aggregate(.~Sex,df,mean)

, такое, что

> dfout
  Sex   Weight   Height
1   F 47.00000 162.5000
2   M 61.33333 180.3333

Данные

df <- structure(list(Sex = structure(c(1L, 1L, 2L, 2L, 2L), .Label = c("F", 
"M"), class = "factor"), Weight = c(50, 44, 69, 55, 60), Height = c(160, 
165, 179, 185, 177)), class = "data.frame", row.names = c(NA, 
-5L))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...