使用工作日将变量记录到虚拟变量

时间:2016-01-16 16:26:08

标签: r dummy-variable

我有一个从星期一开始的变量,它列出了1-7的每个日期。我想将此更改为工作日与周末,分别以0-1创建虚拟变量。我知道如何做一个,但我无法弄清楚如何在代码的迭代中包含6和7。

例如,我提出以下内容:

flights$dayweek <-factor(ifelse(as.numeric(flights$dayweek)==6, 1,0))

我对上述内容的意图是让代码找到它所说的6&amp; 7,然后将其替换为1,其他任何值为0,用于航班数据集中的变量dayweek。上面的问题是它只有6而不是7.我不知道如何在数据集中包含7。我试过了:

flights$dayweek <-factor(ifelse(as.numeric(flights$dayweek)==6:7, 1,0))
flights$dayweek <-factor(ifelse(as.numeric(flights$dayweek)==c(6,7), 1,0))

我已经看过其他常见的虚拟变量主题,但它们似乎都像男性/女性那样简单1到0,我知道如何做到这一点。我可以做一个大于5的功能吗?以下示例数据:

schedtime carrier deptime dest distance date dayweek daymonth delay
1700      RU      1651    WER  213      1401    4       1     ontime
1800      RU      1402    EWR  199      1401    6       1     delayed

1 个答案:

答案 0 :(得分:1)

使用# using an example dataset flights <- data.frame(dayweek = rep(1:7, 2), "flight" = letters[1:14]) flights$dayweek <-factor(ifelse(as.numeric(flights$dayweek) %in% c(6, 7), 1,0)) > flights dayweek flight 1 0 a 2 0 b 3 0 c 4 0 d 5 0 e 6 1 f 7 1 g 8 0 h 9 0 i 10 0 j 11 0 k 12 0 l 13 1 m 14 1 n 运算符测试向量中的包含。

{{1}}