(list)对象不能在clogitLasso中强制执行

时间:2017-05-24 19:34:54

标签: r mlogit

我的包clogitLasso有问题我不断得到错误“(list)对象无法强制输入'double'”

我已经对此进行了大量的搜索,并且有很多方法可以预先转换数据来解决这个问题,但无论我做什么,它都会不断出现。

我不确定我在这里做错了什么 - 我可以在R中生成与完全相同的数据结构并且使用相同的语法运行而没有任何问题,但当我在像这样它不起作用。

使用数据(修剪但出现相同的错误):https://pastebin.com/WfB1LJQ2

代码:

library(clogitLasso)
#Read in data
data <- read.csv('data.txt',sep="\t")

#Data must be sorted so that the 
#binary=1 option comes FIRST within the strata
datasorted <- data[order(data$groupid,-data$binary),]

#Convert from a data frame to numericals
X <- as.matrix(datasorted[,1:4])
y <- as.numeric(datasorted[,5])
group <- as.numeric(datasorted[,6])

results <- clogitLasso(X,y,group)

每次都会出现相同的错误。任何提示将不胜感激!

1 个答案:

答案 0 :(得分:4)

对象y必须属于matrix类。这是修改后的代码:

library(clogitLasso)
data <- read.csv('WfB1LJQ2.txt',sep="\t", header=T)
datasorted <- data[order(data$groupid,-data$binary),]
X <- as.matrix(datasorted[,1:4])
y <- as.matrix(datasorted[,5])
group <- as.numeric(datasorted[,6]) 

results <- clogitLasso(X,y,group)  
plot(results)

enter image description here