我正在尝试在R中使用lars
进行回归。但是,我不断收到此错误:
rep(1,n)中的错误:无效的'times'参数。
这是我的代码:
IN: dput(head(LBJ09))
OUT: structure(list(G = c("1", "2", "3", "4", "5", "6"), Date = c("2008-10-28",
"2008-10-30", "2008-11-01", "2008-11-03", "2008-11-05", "2008-11-07"
), Age = c("23-303", "23-305", "23-307", "23-309", "23-311",
"23-313"), Tm = c("CLE", "CLE", "CLE", "CLE", "CLE", "CLE"),
Home = c("@", "", "@", "@", "", ""), Opp = c("BOS", "CHA",
"NOH", "DAL", "CHI", "IND"), GS = c("1", "1", "1", "1", "1",
"1"), MP = c("36:00", "30:16", "37:43", "34:08", "35:50",
"39:20"), FG = c("9", "7", "6", "8", "13", "11"), FGA = c("21",
"15", "15", "20", "23", "24"), FGP = c(".429", ".467", ".400",
".400", ".565", ".458"), `3PM` = c("0", "0", "0", "0", "0",
"1"), `3PA` = c("4", "2", "3", "2", "2", "6"), `3PP` = c(".000",
".000", ".000", ".000", ".000", ".167"), FT = c("4", "8",
"3", "13", "15", "4"), FTA = c("8", "12", "4", "15", "16",
"7"), FTP = c(".500", ".667", ".750", ".867", ".938", ".571"
), ORB = c("1", "2", "2", "2", "2", "2"), DRB = c("6", "7",
"5", "6", "7", "7"), TRB = c("7", "9", "7", "8", "9", "9"
), AST = c("6", "9", "13", "3", "6", "8"), STL = c("2", "0",
"3", "2", "4", "1"), BLK = c("1", "1", "0", "1", "0", "4"
), TOV = c("3", "5", "5", "1", "5", "4"), PF = c("4", "3",
"3", "1", "1", "2"), PTS = c("22", "22", "15", "29", "41",
"27"), GmSc = c("14.1", "17.0", "15.3", "24.0", "36.0", "21.5"
)), row.names = c(NA, 6L), class = "data.frame")
library(lars)
lars09 <- lars(LBJ09$PTS, LBJ09$FG+LBJ09$AST+LBJ09$`3PM`+LBJ09$FT+LBJ09$TRB+
LBJ09$STL+LBJ09$BLK, type = "lasso")
plot(lars09)
我希望lars
包能够成功运行,因为所有LBJ
变量都是列中的数字数据。但是,lars
甚至无法运行。有什么想法吗?
答案 0 :(得分:0)
尝试以下代码:
# Convert variables from character to numeric
vars <- c("PTS", "FG", "AST", "3PM", "FT", "TRB", "STL", "BLK")
LBJ09[, vars] <- sapply(LBJ09[, vars], as.numeric)
# Create the X matrix of explanatory variables and the y vector with the outcome
X <- as.matrix(LBJ09[, vars[-1]])
y <- LBJ09[, vars[1]]
lars09 <- lars(x=X, y=y, type = "lasso")
plot(lars09)