r - 将数据框中的 week.year 格式化为在 R 中从零开始
问题描述
我有一个数据框列表,其中每个数据框都包含格式为 week.year 的日期,例如 01.2019、02.2019 等。我想在个位数周前保留 0,例如 01 或 02,因为现在它正在将其更改为 1,2,依此类推。我编写了以下代码,它在 dataset$CAL 列具有 week.year 值的情况下完美运行。
X <-list()
x <- nchar(dataset$CAL)
counter=1
for (i in x) {
if (i==6){
dataset$CAL[counter]<- paste0("0", dataset$CAL[counter])
}
else {
dataset$CAL[counter]<-dataset$CAL[counter]
}
counter <- counter+1
}
但这有一个严重的性能问题,加载时间太长,当然也不推荐在 R 中使用 for 循环。我尝试使用 lapply 函数,但它没有给出适当的结果
dataset$CAL <- lapply(dataset$CAL, function(x) if (nchar(dataset$CAL)==6) {paste0("0", dataset$CAL)} else {dataset$CAL})
这个方向的任何指示?非常感谢帮助。
解决方案
我认为sprintf
可以解决问题:
dataset$CAL2 <- sprintf("%06s", dataset$CAL)
或使用str_pad
from stringr
。
dataset$CAL2 <- stringr::str_pad(dataset$CAL, 6, pad = "0")
推荐阅读
- python - Python - 从两个列表的元素连接创建多个列表
- html - 如何在 Leaflet HTML 中将经度和纬度转换为(地址/物理)
- go - 我是否需要在生产服务器上安装所有 go 依赖包
- java - QAF:java.lang.IllegalArgumentException:必须定义添加操作的键
- java - 使用 JNDI 使用 Spring Boot 配置多个数据源
- esri-maps - Android ESRI地图如何从屏幕点获取纬度经度
- sql - 如果日期落在 29,30 和 31,则将日期转换为下个月
- r - 在 ggplot2-plot 的标题中包含特定日期
- apache-kafka - Confluent Cloud 上没有模式验证
- css - 我在哪里可以找到 react-quill 中不同样式的 css