我想在一周中的所有日期为我的数据框创建7个虚拟变量。我的数据框“ BTC.USD”包含以美元表示的比特币的时间序列数据(收盘价=收盘价):
$rows
(Wday的缩写是德语)
我如何在一周中的几天中添加7个带有虚拟变量的新列?
使用地图功能或应用功能更好吗?
答案 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)