2
我有一个看起来像这样的数据帧的随机数字:[R生成的每一行
> head(df.data)
Date Persnr AmountHolidays Season Holiday Temp
1 201101 55312 0.0 Off FALSE 4.8
2 201101 55316 3.0 Off FALSE 4.8
3 201101 55325 0.0 Off FALSE 4.8
4 201101 76065 0.0 Off FALSE 4.8
5 201101 71928 1.0 Off FALSE 4.8
6 201101 72558 0.5 Off FALSE 4.8
> str(df.data)
'data.frame': 490 obs. of 6 variables:
$ Date : Factor w/ 49 levels "201101","201102",..: 1 1 1 1 1 1 1 1 1 1 ...
$ Persnr : int 55312 55316 55325 76065 71928 72558 73045 77214 121216 71951 ...
$ AmountHolidays: num 0 3 0 0 1 0.5 0 0.5 2 0 ...
$ Season : chr "Off" "Off" "Off" "Off" ...
$ Holiday : chr "FALSE" "FALSE" "FALSE" "FALSE" ...
$ Temp : num 4.8 4.8 4.8 4.8 4.8 4.8 4.8 4.8 4.8 4.8 ...
我想要做的是创建两个数字的随机值,并将其粘贴背后的“日期”值。这两个数字代表了日子。 例如“20110112”或“20110106”。 我用这个已经:
df.data$Date<-paste(df.data$Date,sample(1:31,31),sep="")
结果:
> head(df.data)
Date Persnr AmountHolidays Season Holiday Temp
1 20110117 55312 0.0 Off FALSE 4.8
2 20110114 55316 3.0 Off FALSE 4.8
3 2011018 55325 0.0 Off FALSE 4.8
4 20110113 76065 0.0 Off FALSE 4.8
5 2011017 71928 1.0 Off FALSE 4.8
6 20110110 72558 0.5 Off FALSE 4.8
它的工作原理,但!我的问题是它并不总是生成两个数字值。值1显示为1而不是01.值2显示为2而不是02等。
任何建议如何解决此问题?
尝试'的sprintf( '%S%02D',唯一的(df.data $日期),样品(1:31,31))' – akrun
在该示例中,'df.data $ date'是一样的,它会改变吗? – akrun
嗨minhphongb。仅供将来参考,请尝试将您的问题修正至您无法弄清楚的部分。我们不希望出现XY问题的情况,但在这种情况下,您可能会发布一条问题:“如何将1格式化为'01'?” - 也许比这个更详细一点,但如果问题很短并且重点仍然涵盖所有必要的基础,你会得到更多的答复和更好的答复。 – Dason