合并两个向量为一组创建重复项
merge two vectors to create duplicates for one group
我希望合并两个向量(时间和位置)以创建一个包含每个位置的所有时间的数据框。下面是两个向量:
#Here are the hours
base_hours = seq(
from=as.POSIXct("2015-1-1 0:00", tz="America/New_York"),
to=as.POSIXct("2015-1-3 23:00", tz="America/New_York"),
by="hour"
)
#hypothetical locations
loc = c("woodside", "corona", "jackson heights", "flushing")
如何合并它们以便每个地点的每个日期都以基准时间为单位?最后一组看起来像这样:
loc hours
woodside 2015-01-01 00:00:00 EST
woodside 2015-01-01 01:00:00 EST
woodside 2015-01-01 02:00:00 EST
corona 2015-01-01 00:00:00 EST
corona 2015-01-01 01:00:00 EST
corona 2015-01-01 02:00:00 EST
如果我理解正确的话,这样的事情会起作用:
>final <- merge(loc, base_hours)
>colnames(final) <- c("loc","hours")
>final
*loc hours
1 woodside 2015-01-01 00:00:00
2 corona 2015-01-01 00:00:00
3 jackson heights 2015-01-01 00:00:00
4 flushing 2015-01-01 00:00:00
5 woodside 2015-01-01 01:00:00
6 corona 2015-01-01 01:00:00
7 jackson heights 2015-01-01 01:00:00
8 flushing 2015-01-01 01:00:00
9 woodside 2015-01-01 02:00:00
10 corona 2015-01-01 02:00:00
11 jackson heights 2015-01-01 02:00:00
我们可以使用expand.grid
res <- expand.grid(loc = loc, base_hours = base_hours)
head(res)
# loc base_hours
#1 woodside 2015-01-01 00:00:00
#2 corona 2015-01-01 00:00:00
#3 jackson heights 2015-01-01 00:00:00
#4 flushing 2015-01-01 00:00:00
#5 woodside 2015-01-01 01:00:00
#6 corona 2015-01-01 01:00:00
或 CJ
来自 data.table
library(data.table)
CJ(loc=loc, base_hours=base_hours)
我希望合并两个向量(时间和位置)以创建一个包含每个位置的所有时间的数据框。下面是两个向量:
#Here are the hours
base_hours = seq(
from=as.POSIXct("2015-1-1 0:00", tz="America/New_York"),
to=as.POSIXct("2015-1-3 23:00", tz="America/New_York"),
by="hour"
)
#hypothetical locations
loc = c("woodside", "corona", "jackson heights", "flushing")
如何合并它们以便每个地点的每个日期都以基准时间为单位?最后一组看起来像这样:
loc hours
woodside 2015-01-01 00:00:00 EST
woodside 2015-01-01 01:00:00 EST
woodside 2015-01-01 02:00:00 EST
corona 2015-01-01 00:00:00 EST
corona 2015-01-01 01:00:00 EST
corona 2015-01-01 02:00:00 EST
如果我理解正确的话,这样的事情会起作用:
>final <- merge(loc, base_hours)
>colnames(final) <- c("loc","hours")
>final
*loc hours
1 woodside 2015-01-01 00:00:00
2 corona 2015-01-01 00:00:00
3 jackson heights 2015-01-01 00:00:00
4 flushing 2015-01-01 00:00:00
5 woodside 2015-01-01 01:00:00
6 corona 2015-01-01 01:00:00
7 jackson heights 2015-01-01 01:00:00
8 flushing 2015-01-01 01:00:00
9 woodside 2015-01-01 02:00:00
10 corona 2015-01-01 02:00:00
11 jackson heights 2015-01-01 02:00:00
我们可以使用expand.grid
res <- expand.grid(loc = loc, base_hours = base_hours)
head(res)
# loc base_hours
#1 woodside 2015-01-01 00:00:00
#2 corona 2015-01-01 00:00:00
#3 jackson heights 2015-01-01 00:00:00
#4 flushing 2015-01-01 00:00:00
#5 woodside 2015-01-01 01:00:00
#6 corona 2015-01-01 01:00:00
或 CJ
来自 data.table
library(data.table)
CJ(loc=loc, base_hours=base_hours)