如何在R中解决这个问题

时间:2018-09-19 00:28:30

标签: r mean median standard-deviation

考虑对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 :(得分:0)

您可以将两个向量与cbind连接起来,然后使用applysapply的组合最终获得带有所需估计量的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