真的很難想出一個合適的標題,但希望這能解釋我的問題是什么:
假設我有一個資料集(或向量),其中一列是數字 Frame_ID 列,但它們不是唯一的 ID。例如 Frame_ID = c( 2 , 2 ,2 , 3 , 3 , 3 , 4 , 4 , 5 , 5 , 5 , 6 , 6 , 6 , 7 , 7 , 8 , 8 , 8 , 9 , 10 , 10 10 、 11 等),這一直持續到 Frame_ID=159753,沒有任何特定模式或規則可以解釋 Frame_ID 重復了多少次。現在,我想在新列中為每 30 個 Frame_ID 添加一個相應的時間戳(每 30 個 Frame_ID 1 秒),因此它最終看起來像這樣:
| 幀 ID | 時間戳 |
|---|---|
| 2 | 14:30:19 |
| 2 | 14:30:19 |
| 2 | 14:30:19 |
| 3 | 14:30:19 |
| ... | .... |
| 30 | 14:30:19 |
| 31 | 14:30:20 |
| 31 | 14:30:20 |
我創建了這個函式,但除了我相信它在概念上并沒有真正作業之外,它還使用行號而不是 i 的實際 Frame_ID 值。我怎樣才能解決它,以便它處理迭代和 i 而不是行號的實際 Frame_ID 值?希望這是有道理的。
預先感謝,任何提示都非常感謝。
real_time <- c()
start = hms('14:30:19')
for (i in 0:159753) {
start <- data$Frame_ID[i:i 30]
real_time[i] <- start
i = i 30
start = start 1
print(real_time)
}
uj5u.com熱心網友回復:
在這里使用回圈聽起來效率很低。這對你有用嗎?
data %>%
mutate(Timestamp = as.character(hms('14:30:19') floor(Frame_ID/30)))
uj5u.com熱心網友回復:
df <- data.frame(Frame_ID = c(2,2,2,3,30,31,31,39,59,60,69))
df$grp <- floor(df$Frame_ID/30)
df$Timestamp <- as.POSIXct("2000/01/01 14:30:19") df$grp
df
#> Frame_ID grp Timestamp
#> 1 2 0 2000-01-01 14:30:19
#> 2 2 0 2000-01-01 14:30:19
#> 3 2 0 2000-01-01 14:30:19
#> 4 3 0 2000-01-01 14:30:19
#> 5 30 1 2000-01-01 14:30:20
#> 6 31 1 2000-01-01 14:30:20
#> 7 31 1 2000-01-01 14:30:20
#> 8 39 1 2000-01-01 14:30:20
#> 9 59 1 2000-01-01 14:30:20
#> 10 60 2 2000-01-01 14:30:21
#> 11 69 2 2000-01-01 14:30:21
format(df$Timestamp, format = "%H:%M:%S")
#> [1] "14:30:19" "14:30:19" "14:30:19" "14:30:19" "14:30:20" "14:30:20"
#> [7] "14:30:20" "14:30:20" "14:30:21" "14:30:21" "14:30:21"
Created on 2021-10-13 by the reprex package (v2.0.1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/312515.html
下一篇:根據最大值縮放數字
