Как создать таблицу в R для среднего, SD и диапазона из конкретных элементов данных? - PullRequest
0 голосов
/ 24 августа 2018

Я пытаюсь создать таблицу в R для определенного набора данных, создав пять столбцов (имя, общее количество конкретного имени, среднее значение, SD и диапазон).

У меня уже есть набор данных (размеры) со столбцами: имя, высота (H) и вес (W), и я хотел бы создать таблицу, используя данные размеров со столбцами, помеченными как: имя, общее количество конкретных имя, среднее значение H, SD H и диапазон H, среднее W, SD W и диапазон W. Однако у меня возникают проблемы с извлечением данных по имени. Есть предложения?

пример кадра данных (размеры) желаемая таблица

Это может быть вопрос новичка, но это именно то, чем я являюсь в мире R, поэтому любая помощь будет отличной!

Ответы [ 2 ]

0 голосов
/ 24 августа 2018

Следующее делает то, что вы хотите. Я использовал встроенный набор данных iris, выбрав один name столбец и два числовых столбца.

Основная функция - aggregate. Вы должны пройти через его страницу помощи. В командной строке R запустите ?aggregate.

sizes <- iris[5:3]
names(sizes) <- c("name", "height", "weight")
head(sizes)

stats <- function(x){
    c(Sum = sum(x), Mean = mean(x), SD = sd(x), Range = range(x))
}

agg <- aggregate(. ~ name, data = sizes, stats)

colnames(agg$height) <- paste("height", colnames(agg$height), sep = ".")
colnames(agg$height) <- sub("Range1", "Min", colnames(agg$height))
colnames(agg$height) <- sub("Range2", "Max", colnames(agg$height))

colnames(agg$weight) <- paste("weight", colnames(agg$weight), sep = ".")
colnames(agg$weight) <- sub("Range1", "Min", colnames(agg$weight))
colnames(agg$weight) <- sub("Range2", "Max", colnames(agg$weight))

agg <- cbind(agg[1], agg$height, agg$weight)

agg
0 голосов
/ 24 августа 2018

Я думаю, что приведенный ниже пример будет полезен:

library(dplyr)
data<-iris
data %>% group_by(Species) %>% summarise(Count= n(),Mean=mean(data$Sepal.Width),SD=sd(data$Sepal.Width))

Где вы будете группировать по столбцам с именами

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...