vendredi 8 janvier 2021

Creating synthetic user data in R; issues with generating user identifier variable

I am trying to generate synthetic user event log data for demonstration purposes. It's going to be very basic feature-wise (about 4 variables altogether). Here is what I have so far:-

require(wakefield)#for generating the Status variable
require(dplyr)
require(stringi)


set.seed(1)
#data<-data.frame()
eventDate<-seq(as.Date("2015-01-01"), as.Date("2015-12-31"), by = "1 day")
eventDate<-sample(rep(eventDate,each=1000),replace = T)

u <- runif(length(eventDate), 0, 60*60*12) # "noise" to add or subtract from some timepoint
eventDateTime<-as.POSIXlt(u, origin = paste0(eventDate,"00:00:00"))
eventDateTime

eventOutcome<-r_sample_factor(x = c("Passed", "Failed", "Ongoing","Unknown"), n=length(eventDate))
eventOutcome

data<-data.frame(eventDate,eventDateTime,eventOutcome)
head(data)

# eventDate       eventDateTime eventOutcome
#1 2015-01-25 2015-01-25 04:48:47      Unknown
#2 2015-05-05 2015-05-05 09:35:22      Unknown
#3 2015-11-28 2015-11-28 08:56:16       Failed
#4 2015-05-23 2015-05-23 02:24:52      Ongoing
#5 2015-01-26 2015-01-26 07:43:52       Failed
#6 2015-10-22 2015-10-22 03:07:14       Passed

There is about 365000 rows of data here. All that is left to do is add a user identifier variable. I would like it if some users will maybe have a handful of interactions recorded in the data set, whereas some users may have dozens/hundreds/thousands of interactions (I would like this dataset to have that kind of variability).

I can create a user identifier variable no problem:-

UserId<-stri_rand_strings(1300,6)

But if I add this to the data, it doesn't work:-

data$UserId<-stri_rand_strings(1300,6)

Error in `$<-.data.frame`(`*tmp*`, UserId, value = c("k3QlXs", "gK3eBa",  : 
  replacement has 1300 rows, data has 365000

So my request two-fold: How can I assign a User identifier variable to this kind of data; how can I make it variable, where some users have a 1 or a few interactions whilst others will appear frequently (i.e. dozens, hundreds, thousands of times)?

Thank you in advance for any help, always appreciated :)




Aucun commentaire:

Enregistrer un commentaire