2016-11-22 14 views
1

私はいくつかの列を持つデータフレームを持っています。奇数列には時系列、偶数列にはデータが含まれます。データフレームの特定の列に時間を追加する方法

time1.in.s <- seq(0.010, 100, length.out = 100) 
time2.in.s <- seq(0.022, 100, length.out = 100) 
data1 <- seq(-10, 100, length.out = 100) 
data2 <- seq(-25, 80, length.out = 100) 

my.df <- data.frame(time1.in.s, data1, time2.in.s, data2) 

(現実には、もっと列があります)。

今、奇数列は相対的な秒数です。

私はすべての時間の値に与えられた開始時間を追加したい:

start.time <- strptime("2016-11-22_15-44-24", 
         format = "%Y-%m-%d_%H-%M-%S", 
         tz = "UTC") 

私は奇数列を選択する方法を知っている:

odd.indexes <- seq(1, ncol(my.df), 2) 

をしかし、相対的に開始時間を追加します回、私が...動作しません

my.df[, odd.indexes] <- start.time + my.df[, odd.indexes] 

を...ナイーブ何かをした:

また、二項演算子に 非数値引数

start.time + my.dfで

エラー[、odd.indexes]警告メッセージ:互換性のない方法 ( "+ .POSIXt"、 "Ops.data.frame")for "+"

どのようにするには?また、(あなたが何をしているかのわずかな修正を)動作するはずです私たちは列をループする必要があり、その後、+

my.df[, odd.indexes] <- lapply(my.df[, odd.indexes], `+`, start.time) 

答えて

1

my.df[, odd.indexes] <- as.data.frame(start.time + as.matrix(my.df[, odd.indexes])) 
1

は、次の手順に従ってください

関連する問題