2016-05-03 7 views
1

В качестве примера возьмем примерный cars. Автомобили имеют две колонки cars$speed, cars$dist.Как получить сводку по каждому столбцу списка

Я хочу написать функцию, которая будет печатать в сводке кратких сводок для каждого столбца подлинных (в данном случае автомобилей). Это будет выглядеть так:

f<-function(x){ 
#do some stuff 
} 

Результат:

name of first column: 
Min. 1st Qu. Median Mean 3rd Qu. Max. 
4.0 12.0 15.0 15.4 19.0 25.0 
name of second column: 
    Min. 1st Qu. Median Mean 3rd Qu. Max. 
     2.00 26.00 36.00 42.98 56.00 120.00 

Как сделать это?

ответ

1

Если все, что вам нужно, это резюме квантилей и среднее значение, медиана, то просто позвоните summary() в свой фрейм данных. Он даст вам сводку для каждого столбца. Если вы хотите вызвать другие функции ...

Для этого есть отличный пакет, dplyr. Взгляните на summarise_each() и summarise().

Допустим, вы хотите, чтобы найти среднее значение каждого столбца и имеют выход будет свой собственный фрейм данных:

install.packages('dplyr') 
library(dplyr) 
new_df <- summarise_each(cars, funs(mean)) 

## Subsetting to only summarize specific columns 
new_df <- summarise_each(cars[, c('speed', 'dist')], funs(mean)) 

Вы также можете вычислить резюме на основе различных групп данных, используя функцию group_by(). Вы не спрашивали об этом, поэтому я просто остановлюсь здесь.

+0

Выглядит симпатично. как насчет сюжетов? Я хотел бы создать гистограмму или символ плотности для каждого столбца? Как мне это сделать? –

+1

Ха, я не против репетиторства, но, конечно же, вы можете это сделать. Вы можете сделать гистограмму в базе R с помощью функции 'hist()' и указать, какой столбец вы хотите подсчитать. Итак, может быть, 'hist (cars $ speed)' или 'hist (cars $ dist)'. Я забыл, что сюжет плотности задрапирован с моей головы, но я предлагаю ознакомиться с ggplot2, это фантастика. Если вы считаете, что мой первоначальный ответ правильный, вы можете использовать галочку, чтобы пометить ее как ответ. –

+0

Я пытаюсь сделать то же самое с функцией lapply/apply. Ну, я бы хотел получить гистограмму каждого столбца и сохранить эти hisogram (несколько hisograms в том же файле). Вы знаете, как это сделать? Я не могу найти anwer в google. –

4

Если вы хотите, как вывести список

f <- lapply(cars, summary) 

если вы хотите матрицу

f <- sapply(cars, summary) 
+0

Iit выглядит очень просто. Вы знаете, как создать диаграмму для каждого столбца и сохранить ее. Я имею в виду каждую диаграмму в новом файле или что будет лучше нескольких графиков в одном файле?Ну, я не могу понять это. Если вы не возражаете против этого, это будет полезно. –

+1

@WalterWhite это отдельная проблема, рассмотрите вопрос о новом вопросе, если вы не найдете подходящего ответа 'pdf ('plots.pdf'); lapply (автомобили, участок); dev.off() ' – rawr

Смежные вопросы