在双循环内部,我为每个电视台组合创建数据子集,数月由循环完成。例如,我有月数7,8,9和A,B,C站。碰巧在第9个月没有车站C. 然后子集为空,函数抛出,并且没有可能的聚合错误。
因为你可以看到我试图使用if语句如果有0行不继续使用代码但是继续下一个循环。
但我仍然得到同样的错误。消息
你能导航我吗?for (Mesic in monthnumbers){
for (Stanica in TVstations){
Client<-data[data$month ==Mesic & data$Channel_group1 ==Stanica & data$Brand == brand, ]
if (nrow(Client)!=0)
###some code
Client_AGG<-aggregate(formula= Client$BUYING_GRPs ~ Client$Brand,data= Client,FUN = sum)
###some code
}
}
}
答案 0 :(得分:0)
但快速修补程序可能是在客户端&lt; - 行之前进行错误检查,因为这是它正在寻找不存在的通道的地方。在尝试从中获取数据之前,检查数据$ Channel_group1 == Stanica是否存在。
使用for循环的另一个选择是循环使用你知道的东西:
subsetindex <- unique(data[ ,c('month','Channel_group1')])
for(i in 1:nrow(subsetindex)){
Client<-data[data$month ==subsetindex[i,'month'] & data$Channel_group1 ==subsetindex[i,'Channel_group1'] & data$Brand == brand, ]
#other code
}