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