apply()不工作,返回数字(0)

时间:2016-08-07 06:57:14

标签: r apply

我编写了一个非常简单的函数,它应该采用数据向量,进行一些计算,然后返回单个值。如果我从数据框中提取行并在每一行上运行它(例如,函数(x [1,]);该功能按预期工作;但是,当我尝试在整个日期框架上运行它时,它返回“numeric”( 0)“。我在我的智慧结束,因为我知道当一次使用一行时该函数有效,并且我一直使用apply(),所以我不知道为什么它不起作用。函数是下面(“Hexp”)以及一些示例数据(“数据”)和我尝试用来执行它的代码行。感谢您的帮助

Hexp <- function(x){
  hom1 <- sum(x==10)
  hom2 <- sum(x==1)
  het <- sum(x==11)
  miss2 <- sum(x=="--")
  a1 <- (hom1*2+het)/((ncol(x)-miss2)*2)
  a2 <- (hom2*2+het)/((ncol(x)-miss2)*2)
  h <- 2*a1*a2}

data <- as.data.frame(rbind(c(1,11,10),c(1,"--",10)))
result <- apply(data,1,Hexp) 

0 个答案:

没有答案