我想创建一个表(带有数据框或数据表),该表具有两列和30行,这是实际日期。 Col1应该包含以下日期:yyyymm,介于199801和200012之间,采用这种特定格式,并且是随机生成的。 Col2应该仅从第一列获取年份信息。
我尝试使用as.Date,但是上面没有显示格式。 任何线索如何正确处理? 谢谢
答案 0 :(得分:2)
像这样吗?
set.seed(1234)
dates <- (sample(seq(as.Date('1999/01/01'), as.Date('2020/01/01'), by="day"), 30))
data.frame(Col1 = format.Date(dates,"%Y%m"),
Col2 = format.Date(dates,"%Y"))
Col1 Col2
1 201805 2018
2 201805 2018
3 200107 2001
4 200506 2005
5 200402 2004
6 201102 2011
7 200203 2002
...
答案 1 :(得分:1)
在我看来,应该在Col1中使用字符串。您是从其他来源(csv,excel?)的日期中解析出来的吗?
然后,Col2可以只使用substr
:
dat <- data.frame(col1 = c("201812", "201901"))
dat %>%
mutate(
col2 = substr(col1, 1,4)
)