如何在R中解决这个问题

问题描述 投票:-8回答:1

考虑以下两种病媒,对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,它就不会显示出来。

r mean median standard-deviation
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.