我有一个从星期一开始的变量,它列出了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
答案 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}}