所以我使用read.csv从我的csv中提取了数据,这很正常。 代码:
techdata <- read.csv("/user/path", header = TRUE, sep = ",", stringsAsFactors = FALSE)
我已将数据检查为r中的输出,并且格式正确且看起来很好。
但是当我跑步时
techFit <- lm(techdata$reordered_in_next_30_days ~techdata$work_order_frequency)
summary(techFit)
我明白了
Call:
lm(formula = techdata$reordered_in_next_30_days ~ techdata$work_order_frequency)
Residuals:
Min 1Q Median 3Q Max
-5.416 -0.886 -0.283 0.372 94.531
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.46871 0.03142 78.581 < 2e-16 ***
techdata$work_order_frequency1 2.94734 0.08425 34.985 < 2e-16 ***
techdata$work_order_frequency10 -0.80860 0.07465 -10.832 < 2e-16 ***
techdata$work_order_frequency100 -2.43363 0.36315 -6.702 2.08e-11 ***
techdata$work_order_frequency101 -2.26871 0.34024 -6.668 2.61e-11 ***
techdata$work_order_frequency102 -2.36591 0.26592 -8.897 < 2e-16 ***
techdata$work_order_frequency103 -2.21871 0.48387 -4.585 4.54e-06 ***
....
techdata$work_order_frequencyNULL -2.46871 0.05592 -44.151 < 2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.731 on 72500 degrees of freedom
Multiple R-squared: 0.141, Adjusted R-squared: 0.1378
F-statistic: 44.07 on 270 and 72500 DF, p-value: < 2.2e-16
应该只有1个“techdata $ work_order_frequency”,但最终会超过100个。
这实际上让我很难解释数据的发生情况,并希望更好地了解数据发生的原因。
答案 0 :(得分:0)
您的列work_order_frequency看起来像是一个字符列。默认情况下,如果您使用read.csv
,则会将其读入。这就是为什么lm函数将此列拆分为单独的系数的原因。
使用选项stringsAsFactors = FALSE
再次读入您的数据。