0

ベクトル「t」は時間、ベクトル「d」は日付です。
d のすべての日付の t のすべての時刻のデータを抽出したい
文字から POSIXct に日付をフォーマットする方法を知っているので、これは問題ではありません。使用したのは次のとおりです。

    t <- c("11:25:30", "12:00:00", "15:31:25", "19:15:48", "23:51:06")
    d <- c("2013-01-17", "2013-01-24", "2013-02-09", "2013-02-11")  
    c1 <- sapply(d, function(i) paste(d[i],t))

文字列 " "2013-01-17 11:25:30", "2013-01-17 12:00:00", 2013-01-17 15:31:25" ... 最後まで、各日付と t のすべての時刻を組み合わせます。

4

3 に答える 3

5

これは最速の方法であり、入力量が最小限になるという追加の利点があります。

c(outer(d, t, paste))

##  [1] "2013-01-17 11:25:30" "2013-01-24 11:25:30" "2013-02-09 11:25:30"
##  [4] "2013-02-11 11:25:30" "2013-01-17 12:00:00" "2013-01-24 12:00:00"
##  [7] "2013-02-09 12:00:00" "2013-02-11 12:00:00" "2013-01-17 15:31:25"
## [10] "2013-01-24 15:31:25" "2013-02-09 15:31:25" "2013-02-11 15:31:25"
## [13] "2013-01-17 19:15:48" "2013-01-24 19:15:48" "2013-02-09 19:15:48"
## [16] "2013-02-11 19:15:48" "2013-01-17 23:51:06" "2013-01-24 23:51:06"
## [19] "2013-02-09 23:51:06" "2013-02-11 23:51:06"
于 2013-04-26T18:29:31.163 に答える
2

expand.grid次のpasteように使用できます。

t <- c("11:25:30", "12:00:00", "15:31:25", "19:15:48", "23:51:06")
d <- c("2013-01-17", "2013-01-24", "2013-02-09", "2013-02-11") 
do.call("paste", expand.grid(d,t))
 [1] "2013-01-17 11:25:30" "2013-01-24 11:25:30" "2013-02-09 11:25:30"
 [4] "2013-02-11 11:25:30" "2013-01-17 12:00:00" "2013-01-24 12:00:00"
 [7] "2013-02-09 12:00:00" "2013-02-11 12:00:00" "2013-01-17 15:31:25"
[10] "2013-01-24 15:31:25" "2013-02-09 15:31:25" "2013-02-11 15:31:25"
[13] "2013-01-17 19:15:48" "2013-01-24 19:15:48" "2013-02-09 19:15:48"
[16] "2013-02-11 19:15:48" "2013-01-17 23:51:06" "2013-01-24 23:51:06"
[19] "2013-02-09 23:51:06" "2013-02-11 23:51:06"

sepこの構文を使用してパラメーターを微調整する方法は見つかりませんでしたが、paste必要な出力が得られます。

于 2013-04-26T18:08:35.600 に答える