R在星期几中创建虚拟变量

时间:2019-01-29 08:27:50

标签: r dummy-variable

我想在一周中的所有日期为我的数据框创建7个虚拟变量。我的数据框“ BTC.USD”包含以美元表示的比特币的时间序列数据(收盘价=收盘价):

$rows

(Wday的缩写是德语)
我如何在一周中的几天中添加7个带有虚拟变量的新列? 使用地图功能或应用功能更好吗?

1 个答案:

答案 0 :(得分:1)

您可以使用weekdays()来查找星期几,然后是dcast()

tt <- "date close
2015-12-31  430   
2016-01-01  434   
2016-01-02  434   
2016-01-03  431   
2016-01-04  433   
2016-01-05  431"

d <- read.table(text=tt, header=T, stringsAsFactors = F)

library(dplyr) # for mutate() and `%>%`
library(data.table) # for dcast()
d %>% 
  mutate(date = as.Date(date)) %>% 
  mutate(weekday = weekdays(date)) %>% 
  dcast(date + close ~ weekday, fun.aggregate = length)