我有一个包含以下变量的数据集:
主要数据集:
> head(activityData, 3)
steps date interval
1 1.7169811 2012-10-01 0
2 0.3396226 2012-10-01 5
3 0.1320755 2012-10-01 10
> str(activityData)
'data.frame': 17568 obs. of 3 variables:
$ steps : num 1.717 0.3396 0.1321 0.1509 0.0755 ...
$ date : chr "2012-10-01" "2012-10-01" "2012-10-01" "2012-10-01" ...
$ interval: num 0 5 10 15 20 25 30 35 40 45 ...
数据集的范围为两个月。
我不得不将其分为工作日和周末日。我用以下功能做到了:
> dataAs.xtsWeekday <- dataAs.xts[.indexwday(dataAs.xts) %in% 1:5]
> dataAs.xtsWeekend <- dataAs.xts[.indexwday(dataAs.xts) %in% c(0, 6)]
执行此操作后,我不得不进行一些计算,我失败了,所以我决定再次导出文件并将其读入。
在我再次导入数据后,我进行了我想要的计算,并尝试合并2个数据集,但没有成功。
第一组数据:
> head(weekdays, 3)
X steps date interval daytype
1 1 37.3826 2012-10-01 0 weekday
2 2 37.3826 2012-10-01 5 weekday
3 3 37.3826 2012-10-01 10 weekday
> str(weekdays)
'data.frame': 12960 obs. of 5 variables:
$ X : int 1 2 3 4 5 6 7 8 9 10 ...
$ steps : num 37.4 37.4 37.4 37.4 37.4 ...
$ date : chr "2012-10-01" "2012-10-01" "2012-10-01" "2012-10-01" ...
$ interval: int 0 5 10 15 20 25 30 35 40 45 ...
$ daytype : chr "weekday" "weekday" "weekday" "weekday" ...
第二组数据:
> head(weekend, 3)
X steps date interval daytype
1 1 0 2012-10-06 0 weekend
2 2 0 2012-10-06 5 weekend
3 3 0 2012-10-06 10 weekend
> str(weekend)
'data.frame': 4608 obs. of 5 variables:
$ X : int 1 2 3 4 5 6 7 8 9 10 ...
$ steps : num 0 0 0 0 0 0 0 0 0 0 ...
$ date : chr "2012-10-06" "2012-10-06" "2012-10-06" "2012-10-06" ...
$ interval: int 0 5 10 15 20 25 30 35 40 45 ...
$ daytype : chr "weekend" "weekend" "weekend" "weekend" ...
现在我想按日期合并2个数据集(工作日,周末),但问题是我没有任何共同日期或其他常见日期。
最终数据集应包含4列和17568个观测值。
列应为:
我尝试过:
merge
join(plyr)
union
我看到所有数据集中的所有数据集在两个数据集中都有一个公共ID或公共列,与我的情况不同。
我也看了here,但我对其他许多人并不了解,但他们与我的数据集没有任何共同之处。
我想到的另一个选项是在原始数据集中添加一个列并调用它 &#34; ID&#34;并重做我到目前为止所做的一切;如果我找不到解决这个问题的办法,我必须做的事情。
我想就如何继续或下一步尝试提供一些建议。
答案 0 :(得分:1)
既然你提到你的最终数据集应该有17568(= 4608 + 12960)个观察/行,我假设你想要将两个data.frames相互叠加(并且可能在之后按日期排序)。这是通过使用rbind()
完成的。
finaldata <- rbind(weekdays, weekend)
如果您要删除列X
:
finaldata$X <- NULL
要将date
列转换为实际日期:
finaldata$date <- as.Date(finaldata$date, format="%Y-%m-%d")
按日期订购整个数据:
finaldata <- finaldata[order(finaldata$date),]