你分割你的數據後,您可以解析爲定義諸如「小時」,「周」,「天」的時代關鍵詞的結果列表,並創建包含相關值(或0數據幀,如果沒有的價值某個關鍵字)。你可以做到這一點像這樣的東西:
library(dplyr)
vector = c("3 weeks, 2 days, 4 hours", "4 weeks, 6 days, 12 hours", "3 days, 18 hours", "4 days, 3 hours", "7 hours", "8 hours")
split_vector = strsplit(vector, ",", fixed = TRUE)
parse_string = function(i){
x = split_vector[[i]]
data_frame(ID = i) %>%
mutate(hours = ifelse(any(grepl("hours", x)), as.numeric(gsub("\\D", "", x[grepl("hours", x)])), 0),
days = ifelse(any(grepl("days", x)), as.numeric(gsub("\\D", "", x[grepl("days", x)])), 0),
weeks = ifelse(any(grepl("weeks", x)), as.numeric(gsub("\\D", "", x[grepl("weeks", x)])), 0))
}
all_parsed = lapply(1:length(split_vector), parse_string)
all_parsed = rbind_all(all_parsed) %>%
mutate(final_hours = hours + days * 24 + weeks * 7 * 24)
我認爲[這個Q&A](http://stackoverflow.com/questions/8204878/from-timespan-for-example-15-min-or-2-sec-to-001500-or-000002-usin)應該讓你開始。 – Henrik