使用工作日将变量记录为虚拟变量
Record variable to a dummy variable using weekdays
我有一个从星期一开始的变量,它列出了从 1 到 7 的每个日期。我想将其更改为工作日与周末,分别使用 0-1 来创建一个虚拟变量。我知道怎么做,但我不知道如何在代码迭代中包含 6 和 7。
例如,我输入以下内容:
flights$dayweek <-factor(ifelse(as.numeric(flights$dayweek)==6, 1,0))
我上面的意图是让代码找到它说 6 和 7 的任何地方,然后用 1 替换它,对于航班数据集中的变量 dayweek,其他任何东西都是 0。上面的问题是它只做 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))
我还看过其他常见的虚拟变量主题,但它们似乎都很简单,就像 male/female 一样,从 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
使用 %in%
运算符测试向量中的包含。
# 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 到 7 的每个日期。我想将其更改为工作日与周末,分别使用 0-1 来创建一个虚拟变量。我知道怎么做,但我不知道如何在代码迭代中包含 6 和 7。
例如,我输入以下内容:
flights$dayweek <-factor(ifelse(as.numeric(flights$dayweek)==6, 1,0))
我上面的意图是让代码找到它说 6 和 7 的任何地方,然后用 1 替换它,对于航班数据集中的变量 dayweek,其他任何东西都是 0。上面的问题是它只做 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))
我还看过其他常见的虚拟变量主题,但它们似乎都很简单,就像 male/female 一样,从 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
使用 %in%
运算符测试向量中的包含。
# 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