r - 如何根据位置从不同长度的字符串中提取字符?

标签 r

我快要秃头了,想弄清楚这个问题。我正在尝试根据位置从不同长度的字符串中提取字符。例如,假设我有一个包含 8 行和 1 列的数据框,标题为:“时间” 该列在每一行中具有以下值:

TIME
5  
20 
100
105
150
1050
2005
2010

我正在尝试找出如何提取这些字符串中的字符并根据位置将其转换为以下格式。如果仔细观察,您会发现最后两个字符位于 00:here:00 而所有其他字符都位于 here:00:00。结果应该是:

5 -> 00:05:00(如果只有 1 个字符)
20 -> 00:20:00 (如果有2个字符)
100 -> 1:00:00 (如果有 3 个字符)
105 -> 1:05:00 (如果有3个字符)
150 -> 1:50:00 (如果有3个字符)
1050 -> 10:50:00 (如果有 4 个字符)
2005 -> 20:05:00 (如果有4个字符)
2010 -> 20:10:00(如果有4个字符)

从本质上讲,伪代码应该是这样的 从 dataframe$column1 中提取最后两个字符并将其放置在 00:here:00 - 所有剩余的字符都应该放在 here:00:00

最佳答案

format( as.POSIXct(sprintf("%04.0f", TIME), format="%H%M"), format="%H:%M:%S")
[1] "00:05:00" "00:20:00" "01:00:00" "01:05:00"
[5] "01:50:00" "10:50:00" "20:05:00" "20:10:00"

sprintf 用前导 0 填充 hte 时间变量的字符值。 as.POSIXct 读入时间作为当前日期,然后外部 format.POSIXt 函数删除日期字符。

关于r - 如何根据位置从不同长度的字符串中提取字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31664008/

相关文章:

r - ggplot fiddle 情节不是在策划

r - 仅在选择选项卡时更新 Shiny 的 UI

r - 根据条件在 R Shiny 中显示/隐藏选择输入

r - 如何在 R 中使用 gmp 库

r - roxygen2 6.0.0 现在在最后一行需要 "@export"吗?

r - R 中的数字格式

r - 在 R 中分组和按行自定义排列

r - stat_bin() 在 ggplot2 中绘制对数刻度

r - 对于 R 中多列的数据集,如何按组从多行中减去一行?

r - 将数据从列 (R) 传播到某个日期范围