我是Rstudio and Stack的新手,正在尝试使用8个变量(一个虚拟)但只有10个观察值(不确定是否是这个问题)为我的模型计算AIC。到目前为止,我运行的代码是:
library("MASS")
energy_data <- read.table('energy.txt', header = T)
full <- lm(y~., data = energy_data)
此后,我得到警告
警告消息:
1: In model.response(mf, "numeric") :
using type = "numeric" with a factor response will be ignored
2: In Ops.factor(y, z$residuals) : ‘-’ not meaningful for factors
我查看了其他论坛主题,但不确定它们是否适用于我的情况。
我也尝试将其作为CSV文件运行,但在这种情况下,我得到了错误:
model.frame.default(formula = y〜。,data = Energy,drop.unused.levels = TRUE)中的错误:可变长度不同(为“ GSP”找到),其中GSP为x1
再次有人问过这个问题,但我不确定该如何解决。txt dataCSV data
提前感谢!
问题是,
列中的y
,这使其成为一个因素。您可以通过使用,
删除gsub
来解决此问题,但为此必须先将其更改为字符。删除,
后,您需要将其更改为数字。
library(MASS)
energy_data <- read.table(text="x1 x2 x3 x4 x5 x6 x7 x8 y
361 79.7 2.983013699 1.683972603 4.35 2573.2 2048 0 77,465.59
369 86.9 2.814684932 1.701424658 4.7 2599 2094.5 0 76,705.04
375 100 2.780956284 2.006202186 3.7 2634.2 2141 0.5 72,704.99
384 119.3 3.594931507 1.448 2.75 2669.4 2266 1 70,061.93
392 123.5 3.354246575 1.522657534 2.5 2704.6 2391 0.5 69,587.52
402 114.5 3.17438562 1.653780822 2.1 2739.8 2418 0 70,138.85
410 109.3 3.691912568 1.346284153 1.75 2775 2445 0 70,405.99
418 120.8 3.725232877 1.818520548 1.5 2859.7 2586 0 70,879.50
421 136.6 3.681369863 1.79890411 1.5 2944.4 2726 0 70,436.26
431 135.2 3.960821918 1.959369863 1.2 3029.1 2867 0 70,161.83", header=T, sep="\t")
energy_data$y <- as.numeric(gsub(",","",as.character(energy_data$y)))
full <- lm(y~., data = energy_data)
您还可以通过编辑读取的文件来解决,
来解决它。
energy_data <- read.table(text="x1 x2 x3 x4 x5 x6 x7 x8 y
361 79.7 2.983013699 1.683972603 4.35 2573.2 2048 0 77465.59
369 86.9 2.814684932 1.701424658 4.7 2599 2094.5 0 76705.04
375 100 2.780956284 2.006202186 3.7 2634.2 2141 0.5 72704.99
384 119.3 3.594931507 1.448 2.75 2669.4 2266 1 70061.93
392 123.5 3.354246575 1.522657534 2.5 2704.6 2391 0.5 69587.52
402 114.5 3.17438562 1.653780822 2.1 2739.8 2418 0 70138.85
410 109.3 3.691912568 1.346284153 1.75 2775 2445 0 70405.99
418 120.8 3.725232877 1.818520548 1.5 2859.7 2586 0 70879.50
421 136.6 3.681369863 1.79890411 1.5 2944.4 2726 0 70436.26
431 135.2 3.960821918 1.959369863 1.2 3029.1 2867 0 70161.83", header=T, sep="\t")
full <- lm(y~., data = energy_data)