2016-12-30 68 views
0

我正在寻找合并两个向量(时间和位置)来创建一个数据帧,它具有每个位置的所有时间。以下是两个向量:合并两个向量来为一个组创建重复

#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 
+0

使用'expand.grid(loc,base_hours)' – akrun

回答

1

如果我正确地理解这个,像这样的工作:

>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 
+1

这对我有效。完全想到这一点。谢谢! – LoF10

1

我们可以使用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 from data.table

library(data.table) 
CJ(loc=loc, base_hours=base_hours) 
相关问题