2013-11-11 5 views
2

У меня есть резюме R вектора:Добавить столбец резюме R

summary(vector) 
Min. 1st Qu. Median Mean 3rd Qu. Max. 
1.000 1.000 2.000 6.699 6.000 559.000 

и я хотел бы добавить колонку со стандартным отклонением:

SomethingNew(vector) 
Min. 1st Qu. Median Mean 3rd Qu. Max. Std.Dev. 
1.000 1.000 2.000 6.699 6.000 559.000 17.02 

Формула для последнего столбца is

round(sd(vector),2) 

, но я не знаю, как добавить его в сводный фрейм данных на том же дисплее. Любая помощь приветствуется, приветствует.

+4

Я бы рекомендовал использовать 'signif' вместо' round' при округлении здесь, вы обычно более заинтересованы в получении п значащих цифр, чем округление заданного количество знаков после запятой. –

+0

'summary' использует' signif' с аргументом цифр 'max (3, getOption (« цифры ») - 3)' – James

ответ

5

Вот один из способов сделать это:

vec <- 1:10 # an example vector 
summ <- summary(vec) # create the summary 

summ["Std.Dev."] <- round(sd(vec),2) # add the new value 

Результат:

Min. 1st Qu. Median  Mean 3rd Qu.  Max. Std.Dev. 
1.00  3.25  5.50  5.50  7.75 10.00  3.03 
+0

+1 верьте, что вы хотите 'sd (vec)' вместо этого, хотя –

+0

@MatthewPlourde Конечно, вы Верно! Благодарю. –

2

Попробуйте это

> set.seed(1) 
> vector <- rnorm(100, 20, 5) 
> c(summary(vector), sd=sd(vector)) 
    Min. 1st Qu. Median  Mean 3rd Qu.  Max.  sd 
8.927000 17.530000 20.570000 20.540000 23.460000 32.010000 4.490997 

округление:

> round(c(summary(vector), sd=sd(vector)), 2) 
    Min. 1st Qu. Median Mean 3rd Qu. Max.  sd 
    8.93 17.53 20.57 20.54 23.46 32.01 4.49 
3

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

По сути, вы хотите следующее:

mySummary <- function(vector, na.rm = FALSE, round = 2){ 
    results <- c(summary(vector), 'Std. Dev' = round(sd(vector, na.rm), 2)) 
    return(results) 
} 
Смежные вопросы