我是统计世界的新手,所以一些简单的建议将被承认......
我在R
中有一个数据框Ganeeshan
Year General OBC SC ST VI VacancySC VacancyGen VacancyOBC Banks Participated VacancyST VacancyHI
1 2016 52.5 52.5 41.75 31.50 37.5 1338 4500 2319 20 665 154
2 2015 76.0 76.0 50.00 47.75 36.0 1965 6146 3454 23 1050 270
3 2014 82.0 80.0 70.00 56.00 38.0 2496 8212 4482 23 1531 458
4 2013 61.0 60.0 50.00 26.00 27.0 3208 10846 5799 21 1827 458
5 2012 135.0 135.0 127.00 106.00 127.0 3409 11058 6062 21 1886 436
VacancyOC VacancyVI
1 113 102
2 358 242
3 323 321
4 208 390
5 257 345
并希望构建一个线性模型,将因变量作为" General",我使用以下命令
GaneeshanModel1 <- lm(General ~ ., data = Ganeeshan)
我得到&#34; NA&#34;而不是模型摘要中的值
呼叫:
lm(formula = General ~ ., data = Ganeeshan)
残差: 所有5个残差都是0:没有剩余自由度!
系数:(9由于奇点而没有定义)
Estimate Std. Error t value Pr(>|t|)
(Intercept) 6566.6562 NA NA NA
Year -3.2497 NA NA NA
OBC 0.5175 NA NA NA
SC -0.2167 NA NA NA
ST 0.6078 NA NA NA
VI NA NA NA NA
VacancySC NA NA NA NA
VacancyGen NA NA NA NA
VacancyOBC NA NA NA NA
`Banks Participated` NA NA NA NA
VacancyST NA NA NA NA
VacancyHI NA NA NA NA
VacancyOC NA NA NA NA
VacancyVI NA NA NA NA
为什么我这里没有得到任何数据
答案 0 :(得分:0)
如果您没有先正确进行数据预处理,就会发生这种情况。看来你的银行&#39;列为空(NaN),您应该考虑如何处理它(我不确定这是整个文件还是您的&#39; Bank&#39;列中还有其他非空值)。通常,在开始使用数据之前,需要使用一些数值替换列中的NaN(空)值(通常是列的平均值或中值)。在R中,对于您的专栏&#39; Banks&#39; (如果它有其他非空值),例如你可以这样做:
dataset$Banks = ifelse(is.na(dataset$Banks),
ave(dataset$Banks, FUN = function(x) mean(x, na.rm = TRUE)),
dataset$Banks)
否则,根据您的数据集,如果您的某些值由句点(或任何其他非数字值)表示,则可以将csv导入为
dataset = read.csv("data.csv", header = TRUE, c(" ", ".", "NA"))
改变期间&#39;并且&#39;空&#39;值为NaN(NA),然后使用上面的行将NA(NaN)替换为均值/中位数/其他值。