dfidx 错误:两个索引未定义唯一观察值

error with dfidx: the two indexes don't define unique observations

我从一项调查中收集了数据,以便执行基于选择的联合分析。 我已经使用 python 预处理和清理数据以便在 R 中使用它们。 但是,当我在数据集上应用函数 dfidx 时,出现以下错误:这两个索引没有定义唯一的观察值。 我真的不明白为什么。在创建 .csv 文件之前,我通过 pandas 函数 final_df.duplicated().sum() 检查是否存在重复项,其输出为 0,表示没有重复项。 请有人帮助我理解我做错了什么吗?

代码如下:

df <- read.csv('.../survey_results.csv')
df <-  df[,-c(1)]
df$Platform <- as.factor(df$Platform)
df$Deposit <-  as.factor(df$Deposit)
df$Fees <-  as.factor(df$Fees)
df$Financial_Instrument <-  as.factor(df$Financial_Instrument)
df$Leverage <-  as.factor(df$Leverage)
df$Social_Trading <-  as.factor(df$Social_Trading)
df.mlogit <- dfidx(df, idx = list(c("resp.id","ques"), "position"), shape='long')

这是我正在使用的数据集的 link https://github.com/AlbertoDeBenedittis/conjoint-survey-shiny/blob/main/survey_results.csv

提前感谢您的宝贵时间

函数 dfidx() 是为数据框构建的,“其观察值由两个(可能嵌套的)索引定义”(ref)。

我不认为这个函数是为超过两个 idx 构建的。特别是,在你的 df 中,只有在考虑你上面提到的三列(resp.idquesposition)的组合时才没有任何重复项。

此问题的一个解决方案是将两列 resp.idquespaste(...) 合并为一个(例如称为 resp.id.ques)。

df$resp.id.ques <- paste(df$resp.id, df$ques, sep="_")

然后你可以写下面这行应该可以正常工作:

df.mlogit <- dfidx(df, idx = list("resp.id.ques", "position"))