R为每一行生成随机数字

R generate random numeric for each row

我有一个如下所示的数据框:

> 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 ...

我想做的是创建两个数字的随机值并将其粘贴到 "Date" 值后面。这两个数字代表天数。 例如“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 等等

有什么解决办法的建议吗?

尝试

paste0(df.data$Date, sprintf('%02d', sample(31)))