我运行以下行来获取一组人的自举标准化费率,但它会返回一个我几天后无法解决的错误。
crossprod出错(test $ inc_rat,nation_agegroup2010 $ total_prop): 不一致的论点
# to build the dataset
ZN_2011NGT_ADA <- c(0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
age_rage_ZN <- c("2", "3", "4", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "4", "4", "4", "4", "4", "4", "4", "2", "3", "4", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "2", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "3", "4", "4", "4", "4", "4", "4", "4", "4", "4", "4", "4", "4", "4", "4", "4", "4", "4", "4", "4", "5", "5", "5")
zzz <- data.frame(ZN_2011NGT_ADA, age_rage_ZN)
# define the function for bootstrap
ZN_boot <- function(total_dat, rows){
data <- total_dat[rows,]
test <- merge(aggregate(data$ZN_2011NGT_ADA, by = list(age = data$age_rage_ZN), length),
aggregate(data$ZN_2011NGT_ADA, by = list(age = data$age_rage_ZN), sum),
by = 'age')
test$inc_rat <- test$x.y/test$x.x
return(crossprod(test$inc_rat, nation_agegroup2010$total_prop))}
# to run bootstrap
library(boot)
set.seed(1234
boot(data = zzz, statistic = ZN_boot, R = 5000)
此代码块的目的是获取引导速率(引导函数中引导后在函数中返回的值)。我在其他数据集上运行类似的代码,结果证明没问题。我想知道为什么最后一个代码总是报告上面提到的错误?任何人都可以帮忙吗?