Как решить это в R - PullRequest
       38

Как решить это в R

0 голосов
/ 19 сентября 2018

Рассмотрим следующие два вектора на 11 разных собаках, которым предлагаются угощения, и подсчитайте, сколько раз они виляют хвостом в ответ:

Dog_biscuits <- c(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) 
Tail_wags <- c(0, 0, 1, 3, 8, 13, 14, 12, 15, 16, 14)

Напишите функцию с именем summarystat, которая возвращает среднее значение, медиануи стандартное отклонение для обоих этих векторов с метками.

Я пытался:

summarystat <- mean(Dog_biscuits) 
#5 
#print(summarystat) 
print(paste("Mean=", as.numeric(summarystat,"") 

Однако, если я вызываю функцию summarystat(Dog_biscuits) как mean = answer, она не отображается.

1 Ответ

0 голосов
/ 19 сентября 2018

Вы можете объединить два вектора с cbind, а затем использовать комбинацию apply и sapply, чтобы в итоге получить data.frame с требуемыми оценщиками.

Dog_biscuits <- c(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) 
Tail_wags <- c(0, 0, 1, 3, 8, 13, 14, 12, 15, 16, 14)

summarystat <- function(v1, v2) {
  df <- cbind(v1, v2)
  r <- as.data.frame(sapply(c(mean, median, sd), function(z) apply(df, 2, z)))
  colnames(r) <- c("mean", "median", "sd")
  r
}

summarystat(Dog_biscuits, Tail_wags)

Выход:

       mean median       sd
v1 5.000000      5 3.316625
v2 8.727273     12 6.497552
...