debugging 尝试为mlogit创建一个 Dataframe 并不断遇到此错误名称中的错误(data)[ix]:无效的下标型别'language'

13z8s7eq  于 2022-11-24  发布在  Git
关注(0)|答案(1)|浏览(100)

我尝试使用这个数据集https://data.cityofnewyork.us/Transportation/Citywide-Mobility-Survey-Person-Survey-2019/6bqn-qdwq来创建一个mnl模型,但是每次我都试图像这样改变我的原始数据框
nydata_df = dfidx(nydata,形状=“宽”,选择=“工作模式”,变化=排序)
我在这里得到这个错误。
名称(数据)[ix]中有错误:无效的下标型别'language'
我不清楚是什么导致这个错误,我认为这是dplyr的问题,但我不确定。

vyswwuz2

vyswwuz21#

根据mlogit包中的this vignette,当使用dfidx将 Dataframe 从wide转换为long时,varying参数应该用来指定哪些变量应该被“加长”。您是否正在积极尝试加长您的 Dataframe (就像dplyr::pivot_longer()的样式一样)?
如果不是,我认为您不需要varying参数(有关varying的更多信息,请参见?stats::reshape)。如果要使用varying参数,则应指定特定变量,而不仅仅是“sort”(example1example2)。另外,当我运行你的模型时,我没有得到McFadden的R2、p值或卡方检验的NaN。你的软件包完全更新了吗?

library(dfidx)
library(mlogit)
library(performance) # to extract McFadden's R2 easily

packageVersion("dfidx")
#> [1] '0.0.5'
packageVersion("mlogit")
#> [1] '1.1.1'
packageVersion("dplyr")
#> [1] '1.0.10'
# currently running RStudio Version 2022.7.2.576

nydata <- read.csv(url("https://data.cityofnewyork.us/api/views/6bqn-qdwq/rows.csv?accessType=DOWNLOAD"))
nydata_df <- dfidx(data = nydata, 
                   shape = "wide",
                   choice = "work_mode")

m <- mlogit(work_mode ~ 1, nydata_df)
#summary(m)
r2_mcfadden(m)
#> McFadden's R2 
#>  1.110223e-16
m3 <- mlogit(work_mode ~ 1 | harassment_mode + age, nydata_df)
#summary(m3)
r2_mcfadden(m3)
#> McFadden's R2 
#>    0.03410362

相关问题