Изменения

Перейти к: навигация, поиск
м
Применение функций к нескольким переменным
> normTest <- function (x) {
+ res <- shapiro.test(x)
+ return(listc(statistic = res$statistic,+ p.value = res$p.value))
+ }
</syntaxhighlight>
<syntaxhighlight lang="rsplus">
> normTest(x)
$statistic W p.value 0.9903 $p.value[1] 0.6882
</syntaxhighlight>
<syntaxhighlight lang="rsplus">
> t(sapply(DF, normTest))
statistic W p.valueX1 0.9831 0.2301 X2 0.9936 0.9213 X3 0.98 9800 0.1333 X4 0.9829 0.2219 X5 0.9874 0.4625 X6 0.9862 0.3874 X7 0.9839 0.2617 X8 0.9833 0.236 2360X9 0.9915 0.7834 X10 0.9808 0.1531
</syntaxhighlight>
<syntaxhighlight lang="rsplus">
> do.call(rbind, lapply(DF, normTest))
statistic W p.valueX1 0.9831 0.2301 X2 0.9936 0.9213 X3 0.98 0.1333 X4 0.9829 0.2219 X5 0.9874 0.4625 X6 0.9862 0.3874 X7 0.9839 0.2617 X8 0.9833 0.236 X9 0.9915 0.7834 X10 0.9808 0.1531</syntaxhighlight> Можно также воспользоваться пакетом <code>data.table</code>. Для начала преобразуем таблицу в формат <code>data.table</code>:<syntaxhighlight lang="rsplus">DT <- data.table(DF)</syntaxhighlight> Применение функции ко всем столбцам таблицы осуществляется с помощью следующей команды: <syntaxhighlight lang="rsplus">> DT[, rbindlist(lapply(.SD, normTest))] statistic p.value 1: 0.9831 0.2301 2: 0.9936 0.9213 3: 0.9800 0.1333X4 4: 0.9829 0.2219X5 5: 0.9874 0.4625X6 6: 0.9862 0.3874X7 7: 0.9839 0.2617X8 8: 0.9833 0.2360X9 9: 0.9915 0.783410: X10 0.9808 0.1531
</syntaxhighlight>

Навигация