我编写了一个非常简单的函数,它应该采用数据向量,进行一些计算,然后返回单个值。如果我从数据框中提取行并在每一行上运行它(例如,函数(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)