【发布时间】:2018-05-28 22:47:58
【问题描述】:
我正在尝试将类别变量更改为虚拟变量。 "season","holiday","workingday","weather","temp","atemp","humanity","windspeed","registered","count","hour","dow" 都是变量.
这是我的代码:
#dummy
library(dummies)
#set up new dummy variables
data.new = data.frame(data)
data.new = cbind(data.new,dummy(data.new$season, sep = "_"))
data.new = cbind(data.new,dummy(data.new$holiday, sep = "_"))
data.new = cbind(data.new,dummy(data.new$weather, sep = "_"))
data.new = cbind(data.new,dummy(data.new$dow, sep = "_"))
data.new = cbind(data.new,dummy(data.new$hour, sep = "_"))
data.new = cbind(data.new,dummy(data.new$workingday, sep = "_"))
#delete the old variables
data.new = data.new[,-1]
data.new = data.new[,-1]
data.new = data.new[,-2]
data.new = data.new[,-8]
data.new = data.new[,-8]
data.new = data.new[,-1]
生成虚拟变量后是否应该删除旧变量? 如果我想做 PCR,我可以使用所有变量吗?
fit = pcr(count~.,data = data.new)
生成线性回归模型? 还是应该只使用非虚拟变量?
fit = pcr(count~temp+atemp+humidity+windspeed+registered,data = data.new)
很抱歉造成您的误解。我以 lm 函数为例。现在我把它改成了 pcr 函数。 感谢您阅读此问题!
【问题讨论】:
-
尝试使用
dummy.data.frame在数据集中创建虚拟变量。删除或不删除原始变量取决于您以及您将如何指定公式。 -
对不起,你的意思是我的代码使用cbind函数和dummy函数有问题吗?我对编码真的很陌生。你能再解释一下吗?
-
只是如果你指定变量名,这个函数会为你创建多个虚拟变量。运行
?dummy.data.frame时查看该函数的工作原理 -
lm如果您的变量是字符或因子,则会自动为您生成假人,因此无需创建自己的假人。只写fit = lm(count~.,data = data.new)没有所有dummy行。 -
@AntoniosK:知道了。谢谢。
标签: r pca data-analysis dummy-variable