我正在使用一个数据框,其中包含一个名为"Duration"的变量,其格式为:
1小时7分46秒
0小时16分41秒
..等等.默认情况下,该列被格式化为"因子",我想知道如何将其转换为实际持续时间.我希望能够计算持续时间的平均值和总和.
您可以按如下方式提取小时,分钟和秒:
x <- c('1h 7m 46s','0h 16m 41s')
hours <- as.numeric(gsub('^(?:.* )?([0-9]+)h.*$','\\1',x))
minutes <- as.numeric(gsub('^.* ([0-9]+)m.*$','\\1',x))
seconds <- as.numeric(gsub('^.* ([0-9]+)s.*$','\\1',x))
duration_seconds <- seconds + 60*minutes + 60*60*hours
Run Code Online (Sandbox Code Playgroud)
分钟的模式转换为:以(^
)零(或多)(*
)字符(.
)开头,后跟空格(), followed by 1 or more(
+
)数字([0-9]
),后跟字母m(m
)后跟零或更多(*
)字符(.
)到字符串的末尾($
)
奖励:(?:.* )?
正则表达式中的小时数是一个非捕获组((?: )
),它消耗零个或多个(*
)图表(.
)后跟一个空格(). Note that because
(?:.* )?
是非捕获gruop. \\1
仍然引用数字字符串.
归档时间: |
|
查看次数: |
3367 次 |
最近记录: |