2020-03-31 19:33:03 +02:00
# If you want to implement extra features, source(..) a new file and duplicate the line "features <- merge(...)", then
# swap base_sms_features(...) for your own function
2019-11-06 21:38:08 +01:00
2020-05-02 01:46:04 +02:00
source ( " renv/activate.R" )
2020-03-31 19:33:03 +02:00
source ( " src/features/sms/sms_base.R" )
library ( dplyr , warn.conflicts = FALSE )
2019-11-06 21:38:08 +01:00
sms <- read.csv ( snakemake @ input [ [1 ] ] )
day_segment <- snakemake @ params [ [ " day_segment" ] ]
2020-04-08 22:02:58 +02:00
requested_features <- snakemake @ params [ [ " features" ] ]
2019-11-06 21:38:08 +01:00
sms_type <- snakemake @ params [ [ " sms_type" ] ]
2020-03-31 19:33:03 +02:00
features <- data.frame ( local_date = character ( ) , stringsAsFactors = FALSE )
2019-11-06 21:38:08 +01:00
2020-03-31 19:33:03 +02:00
# Compute base SMS features
2020-04-08 22:02:58 +02:00
features <- merge ( features , base_sms_features ( sms , sms_type , day_segment , requested_features ) , by = " local_date" , all = TRUE )
2019-11-06 21:38:08 +01:00
2020-04-08 22:02:58 +02:00
if ( ncol ( features ) != length ( requested_features ) + 1 )
stop ( paste0 ( " The number of features in the output dataframe (=" , ncol ( features ) , " ) does not match the expected value (=" , length ( requested_features ) , " + 1). Verify your SMS feature extraction functions" ) )
2020-03-12 16:22:31 +01:00
2019-11-06 21:38:08 +01:00
write.csv ( features , snakemake @ output [ [1 ] ] , row.names = FALSE )