我正在尝试转换此大型数据集日期列,其格式为(YYYY / MM / DD),我只是想将“ date”变量中的任何观测值转换为相应月份的第一天。(2018/02/03-> 2018/02/01)我对数据表很陌生,如果这是一个简单的问题,我们深表歉意。 这是我的数据集的示例dput()。
structure(list(quantity = c(NA_real_, NA_real_, NA_real_, NA_real_,
NA_real_, NA_real_), price_mid = c(NA_real_, NA_real_, NA_real_,
NA_real_, NA_real_, NA_real_), value_mid = c(100, 241.85, 241.85,
241.85, 241.85, 241.85), currency_price = c("GBP", "GBP", "GBP",
"GBP", "GBP", "GBP"), currency_value = c("GBP", "GBP", "GBP",
"GBP", "GBP", "GBP"), date = structure(c(13515L, 13516L, 13517L,
13518L, 13521L, 13522L), class = "Date")), class = c("data.table",
"data.frame"), row.names = c(NA, -6L), .internal.selfref = <pointer: 0x15f28c0>)
让我知道是否需要对该问题进行任何编辑。 谢谢
答案 0 :(得分:1)
您可以像这样使用format
函数
data$date <- format(data$date,format = "%Y/%m/1")
> data
quantity price_mid value_mid currency_price currency_value date
1: NA NA 100.00 GBP GBP 2007/01/1
2: NA NA 241.85 GBP GBP 2007/01/1
3: NA NA 241.85 GBP GBP 2007/01/1
4: NA NA 241.85 GBP GBP 2007/01/1
5: NA NA 241.85 GBP GBP 2007/01/1
6: NA NA 241.85 GBP GBP 2007/01/1
如果您愿意,可以完全放弃一天,这可能更具代表性。
data$date <- format(data$date,format = "%Y/%m")
> data
quantity price_mid value_mid currency_price currency_value date
1: NA NA 100.00 GBP GBP 2007/01
2: NA NA 241.85 GBP GBP 2007/01
3: NA NA 241.85 GBP GBP 2007/01
4: NA NA 241.85 GBP GBP 2007/01
5: NA NA 241.85 GBP GBP 2007/01
6: NA NA 241.85 GBP GBP 2007/01