使用R语言Apollo包时出现undefined columns selected报错的解决咨询
问题:Apollo包执行apollo_validateInputs()时触发“undefined columns selected”报错
使用R语言的Apollo包构建出行方式选择模型,已成功从.txt文件导入数据,在定义apollo_fixed变量后执行apollo_validateInputs()函数时触发如下报错:
apollo_inputs = apollo_validateInputs() Error in `[.data.frame`(database, , apollo_control$indivID) : undefined columns selected
完整代码如下:
rm(list = ls()) ### Load libraries library(apollo) ### Initialise code apollo_initialise() ### Set core controls apollo_control = list( modelName ="MNL", modelDescr ="Simple MNL model on mode choice data", indivID ="id") # ####################################################### # #### 2. Data loading #### # ####################################################### # mydata <- read.table("/Documents/Travelmode_Final_project.txt", header=TRUE) database = mydata rm(mydata) # ####################################################### # #### 3. Parameter definition #### # ####################################################### # ### Vector of parameters, including any that are kept fixed during estimation apollo_beta=c(shuttlebus=0, citybus=0, bike=0, ubike=0, motorbike=0, car=0, mrt=0, taxi=0, b_SB_TC=0, b_SB_TT=0, b_CB_TC=0, b_CB_TT=0, b_B_TC=0, b_B_TT=0, b_UB_TC = 0, b_UB_TT=0, b_M_TC=0, b_M_TT=0, b_C_TC=0, b_C_TT=0, b_MRT_TT=0, b_MRT_TC=0, b_T_TT=0, b_T_TC=0) apollo_fixed = c("shuttlebus") # ####################################################### # #### 4. Input validation #### # ####################################################### # apollo_inputs = apollo_validateInputs()
潜在原因
apollo_control配置中指定了indivID = "id",但导入的database数据框里不存在名为"id"的列。Apollo需要通过个体ID列识别不同观测主体,找不到对应列就会触发数据框索引错误。
解决方案
- 方案1:检查并修改你的
Travelmode_Final_project.txt文件,确保其中包含名为id的列(注意R对列名大小写敏感,要完全匹配),之后重新导入数据。 - 方案2:如果数据中已有其他用于标识个体的列(比如
person_id、user_id等),直接修改apollo_control里的indivID参数为实际存在的列名,示例:apollo_control = list( modelName ="MNL", modelDescr ="Simple MNL model on mode choice data", indivID ="person_id") # 替换为数据中真实的个体ID列名 - 方案3:如果数据本身没有个体ID列,但每一行对应一个独立个体的观测,可手动添加ID列:
database$id = 1:nrow(database)
内容的提问来源于stack exchange,提问作者Lap Louis
相关产品推荐
相关产品推荐

