Download time-bound recording links and get 45 days access to the respective course content.
45 days access
45 days access
45 days access
Answers about purchasing Clinical SAS and Clinical R recordings, including related data and programs access.
Access includes:
The recordings package gives 45 days access from the date access is activated on your account.
Once the payment confirmation message appears, log out and log in again. Your account will show active access and you can open recordings, programs, and data according to the package purchased.
Pick SAS if you focus on Clinical SAS, R for the R track, and Combo if you need recordings and related content for both tracks.
Payments are processed securely by Razorpay. Common options include UPI, cards, and netbanking. Availability may vary by bank or provider.
Yes. After a successful payment, we email your purchase details including package, amount, start date, and end date. If you do not receive it, check spam or contact us.
You can purchase again after the expiry of your current package.
No. Switching from an already active SAS or R recordings package to Combo is currently not allowed.
Please review our policy: Refund Policy. For help, reach out using the contact info below.
A stable internet connection and a modern browser are recommended. For running programs locally, install the respective tools, SAS or R, as needed for your workflow.
Email: admin@mycsg.in
WhatsApp: +91-7330776649
Contact page: Contact us
The order may be slightly different but the core content of the recordings remain the same.
Session 1
Introduction to R
Introduction to R tidyverse
Some basic differences between SAS and R
Quick introduction to the tasks handled by a clinical trials programmer
Session 2
Some rules regarding statements
Some rules regarding dataset and variable naming conventions
Vector vs data frame (dataset)
Introduction to programming interface in R studio in comparison to SAS
Start of programming concept equivalents of SAS in R
Creating sample data
Create a copy of an existing dataset
Subset observations
Note that in these introductory sessions I am introducing bare minimum conventions required to get started with R programming
Session 3
Start of programming concept equivalents of SAS in R
Subset variables
Subset observations and variables
Renaming variables
Note that in these introductory sessions I am introducing bare minimum conventions required to get started with R programming
Session 4
Start of programming concept equivalents of SAS in R
Adding new variables
Note that in these introductory sessions I am introducing bare minimum conventions required to get started with R programming
Session 5
Programming concept equivalents of SAS in R
Appending datasets
Reorder observations
Merging datasets
Session 6
Programming concept equivalents of SAS in R
Merging data
Fetch frequencies
Descriptive statistics for numeric variables
Summarize – count distinct
Summarize – all statistics that are typically needed in TFL programming
First dot and last dot concept replication
Note that in these introductory sessions I am introducing bare minimum conventions required to get started with R programming
Session 7
Programming concept equivalents of SAS in R
Descriptive statistics for numeric variables
Summarize – count distinct
Summarize – all statistics that are typically needed in TFL programming
Note that in these introductory sessions I am introducing bare minimum conventions required to get started with R programming
Session 8
Programming concept equivalents of SAS in R
First dot last dot concept
Handling duplicates
Note that in these introductory sessions I am introducing bare minimum conventions required to get started with R programming
Session 9
Programming concept equivalents of SAS in R
Restructuring the data
Long to wide
Wide to long
Arrays equivalent
Executing the source code from another file in current program
Character functions
Note that in these introductory sessions I am introducing bare minimum conventions required to get started with R programming
Session 10
Programming concept equivalents of SAS in R
Character functions demo
Functions to convert the data type
A few numeric functions
Introduction to the concept of column-wise vs row-wise processing
Importing data from external files
Replicating the concept of library
Note that in these introductory sessions I am introducing bare minimum conventions required to get started with R programming
Session 11
Introduction to the concept of vectors
Replicating the concept of user defined formats using named vectors
Note that in these introductory sessions I am introducing bare minimum conventions required to get started with R programming
Session 12
Basics of converting collected data values to standard notation - TASKS_SDTMGEN_L040
Quick introduction to 'comparedf' function from arsenal package
Note that any programming concepts that are needed in individual lessons but not covered as part of general SAS to R equivalent sessions will be discussed in detail during these sessions on need basis
Session 13
Conversion of raw date values to ISO8601 format - TASKS_SDTMGEN_L050
Creation of planned arm related variables in SDTM.DM dataset - TASKS_SDTMGEN_L071
Note that any programming concepts that are needed in individual lessons but not covered as part of general SAS to R equivalent sessions will be discussed in detail during these sessions on need basis
Session 14
Creation of actual arm related variables in SDTM.DM dataset - TASKS_SDTMGEN_L072
Creation of exposure start date variables in SDTM.DM dataset - TASKS_SDTMGEN_L073
Creation of RFICDTC, RFSTDTC, RFENDTC in SDTM.DM dataset - TASKS_SDTMGEN_L074
Each of these concepts plays an important role in strengthening our R programming foundation.
While they may seem simple at first glance—especially for those with SAS experience—they offer valuable opportunities to build fluency and confidence in R.
Session 15
Creation of DTHFL and DTHDTC in SDTM.DM dataset - TASKS_SDTMGEN_L075
Creation of study day variable in SDTM datasets - TASKS_SDTMGEN_L101
Creation of RFPENDTC in SDTM.DM dataset - TASKS_SDTMGEN_L070a
Session 16
Creating tests as rows in a findings domain - TASKS_SDTMGEN_L108
Mapping collected visits to standardized visit values - TASKS_SDTMGEN_L104
Remapping unscheduled visits in a findings domain using SV dataset - TASKS_SDTMGEN_L109
Session 17
Convert results in original units to standard units - TASKS_SDTMGEN_L150
Derivation of baseline flag in SDTM - TASKS_BL_L104
Creation of SEQ variable - TASKS_SDTMGEN_L112
Session 18
Create a supplementary domain - TASKS_SDTMGEN_L111
Merge supplementary dataset to a parent domain - TASKS_SDTMGEN_L201
Create an xpt file - TASKS_SDTMGEN_L221
Session 19
Creation of EPOCH variable in SDTM domains - TASKS_SDTMGEN_L110
Handling multiple races in SDTM.DM domain - TASKS_SDTMGEN_L080
Session 20
Create a SDTM findings domain – CV - SDTM_CV_L101
Session 21
Create a SDTM events domain – DS - SDTM_DS_LCSG001
Session 22
Create a SDTM domain – DM - SDTM_DM_LCSG001
Session 23
Create a SDTM domain – SE - SDTM_SE_LCSG001
Session 24
Concatenate values in a variable across observations
Retaining non-missing value from a previous observation onto current record
Create a SDTM domain - SV
Session 25
ADaM - Subject Level Analysis Dataset
Key Date Variables - ADaM_C1001_L101
Subject Level Population Flags - ADaM_C1001_L102
Session 26
ADaM - Subject Level Analysis Dataset
Treatment related variables - Cross-over study - ADaM_C1001_L103a
Creation of baseline variables - ADaM_C1001_L104
Session 27
ADaM - Subject Level Analysis Dataset
ADSL dataset for a parallel arm study - MYCSG-001 (ADaM_ADSL_L1101)
Session 28
ADaM - Dates and Date imputations
Conversion of character dates in ISO 8601 format to numeric date, time, datetime values - ADaM_C1002_L101
Imputation of missing date components – start date and end dates - ADaM_C1002_L102a
Session 29
ADaM programming
Concept of treatment emergence in adverse events - ADaM_C1003_L102a
Derived parameters creation in ADaM BDS datasets - ADaM_C1004_L103
Session 30
ADaM programming
BDS dataset – function of more than one row within a same parameter
Creating rows within same parameter – Rule 3 - ADaM_C1005_L101
Creating a new parameter – Rule 4 - ADaM_C1004_L111
Session 31
Replicate the concept of retaining a value – fill function
ADaM programming
BDS dataset – data imputation
LOCF - ADaM_C1010_L101
WOCF - ADaM_C1010_L121
BOCF - ADaM_C1010_L131
Interpolation - ADaM_C1010_L141
Session 32
ADaM programming
BDS dataset
Visit windowing - ADaM_C1007_L101
Analysis Flags creation – example 1 - ADaM_C1009_L101
Analysis Flags creation – example 2 - ADaM_C1009_L103
Session 33
ADaM programming
BDS dataset
ADIS - ADaM_ADIS_LVAC01
Session 34
ADaM programming
BDS dataset
ADEXSUM (Exposure Summary) - ADaM_ADEXSUM_L1101
Session 35
Table programming
Descriptive statistics for a single numeric variable (TFL_TABGEN_L201)
Session 36
Table programming
Descriptive statistics for two numeric variables (TFL_TABGEN_L202)
Session 37
Table programming
Summary for categorical variables – one variable (TFL_TABGEN_L301)
Summary for categorical variables – two variables (TFL_TABGEN_L302)
Session 38
Table programming
Demographic characteristics (TFL_TABGEN_L401)
Overview of Treatment-Emergent Adverse Events (TFL_TAE_L100)
Session 39
Table programming
TEAE by PT (TFL_TAE_L105)
TEAE by SOC and PT (TFL_TAE_L101)
Session 40
Table programming
Vital signs summary by visit (TFL_TVS_L101)
Potentially clinically significant vital signs (TFL_TVS_L102)
Session 41
Creation of user-defined functions
Basics
Function for study day creation - MACROS_SDTM_L261
Session 42
Creation of user-defined functions
Function for sequence variable creation - MACROS_SDTM_L271
Function for baseline flag and related variables - MACROS_ADaM_L130
Function for iso dates creation - MACROS_SDTM_L251
Session 43
Creation of user-defined functions
Function for demographics table layout (TFL_TABGEN_L401)
Function for creating treatment totals
Types
safety_with_total
safety_without_total
safety_with_alldoselevels
Session 44
Quick introduction to factor datatype
Introduction to graphs
Creation of a bar chart - TFL_FGN_LBAR101
Session 45
Creation of a scatter plot (TFL_FGN_LSCATTER101)
Creation of a line plot (TFL_FGN_LLINE101)
Session 46
Creation of a spider plot (TFL_FGN_LSPIDER101)
Creation of a forest plot (TFL_FGN_LFOREST101)
Session 47
Adding table of numbers to bar chart ( modified TFL_FGN_LBAR101)
Line plot – PK concentration summary over time (TFL_FGN_LLINE111a)
Box plot – manually computed statistics ( modified TFL_FGN_LBOXPLOT101)
Session 48
Introduction to inferential analysis
P-value for t-test (TFL_TIS_LTTEST101)
P-value for ANOVA (TFL_TIS_L121)
Session 49
ANCOVA (TFL_TIS_L151)
Introduction to a few concepts
List
Map functions
Nest function
Unnest function
Fisher test (TFL_TIS_L101)
Session 50
Generating rtf reports using r2rtf package
Demographics summary (TFL_TABGEN_L401)
All customizations that we do in reporting using SAS may not be possible with R
So, there is a trade-off one has to make with rtf reporting/layouts
There are other packages like huxtable, gt for report customization which can be explored too
Session 51
Generating rtf reports using r2rtf package
Adding capital N counts (TFL_TAE_L101)
Using subline_by (TFL_TVS_L101)
Figure(TFL_FGN_LSCATTER101)
Session 52
Inferential statistics
Chi-square test (TFL_TIS_L111)
Binomial test (TFL_TIS_L131)
Some other inferential stats… reference codes available on website
Closing remarks
The order may be slightly different but the core content of the recordings remain the same.
Session 01
- Course introduction
Session 02
- Quick recap of session 01
- What does a clinical trials programmer typically do
- Clinical trial terminology
Session 03
- Recap of clinical trial terminology
- Trial design aspects
Session 04
- Quick recap of trial design aspects
- Introduction to SDTM
- Domains classification in SDTM
- Easily remember the flow and terminology
Session 05
- Quick recap
- Key variables seen in each of the domain classes
- Variables in Interventions domains
- Variables in Events domains
- Variables in Findings domains
- Variables classification - two types
- Core designation
- Role of the variable
Session 06
- Quick recap
- Key variables seen in each of the domain classes
- Variables in Findings domains
- Variables classification - two types
- Core designation
- Role of the variable
- Value-level standardization
- Advantages of having a standard
Session 07
- Full list of variables allowed as per standard for 3 general observation classes
- Introduction to SDTM model and Implementation Guide documents
- Examples of some common identifier variables
Session 08
- Quick recap
- Variables in demographics domain
- Variables in Subject Elements domain
- Variables in Subject Visits domain
- Common identifier variables
Session 09
- Programming concepts
- Conversion of raw values to standard notation - TASKS_SDTMGEN_L040
Session 10
- Programming concepts
- Conversion of raw date values to standard notation - TASKS_SDTMGEN_L050
- Study day creation - TASKS_SDTMGEN_L101
Session 11
- An example protocol to refresh trial design concepts
- Programming concepts
- Conversion of raw values to standard notation
- Conversion of raw date values to standard notation
- Study day creation
Session 12
- Programming concepts
- Derivation of planned arm variables in DM dataset
Session 13
- Programming concepts
- Derivation of planned arm variables in DM dataset
- Derivation of actual arm variables in DM dataset
Session 14
- Programming concepts
- Derivation of RFXSTDTC, RFXENDTC in DM dataset
- Derivation of RFICDTC, RFSTDTC, RFENDTC in DM dataset
- Derivation of DTHFL, DTHDTC in DM dataset
Session 15
- Programming concepts
- Derivation of RFICDTC, RFSTDTC, RFENDTC in DM dataset
- Derivation of DTHFL, DTHDTC in DM dataset
- SDTM DM dataset - programming for multiple races
Session 16
- Programming concepts
- Derivation of RFPENDTC
- Manual approach
- Dynamic approach
Session 17
- Programming concepts
- Quick recap on variables related to findings domains
- Creating tests as rows
- Converting results to standard units
- Creating Epoch variable
- Creating Sequence variable
Session 18
- Programming concepts
- Converting results to standard units
- Creating Epoch variable
- Creating Sequence variable
Session 19
- Programming concepts
- Creating Sequence variable
- Creation of baseline flag
Session 20
- Programming concepts
- Remapping unscheduled visits
- Epoch handling for partial dates
Session 21
- Integrating Programming concepts of SDTM
- Adverse Events
Session 22
- Integrating Programming concepts of SDTM
- Adverse Events - continue from previous session
- Findings domain
Session 23
- Create Supplementary dataset
- Converting sas datasets to xpt format
- Generate P21 report for AE dataset
Session 24
- Generate P21 report for AE dataset
Session 25
- SDTM DM dataset programming
Session 26
- SDTM SE dataset programming
Session 27
- Creation of Trial Design Domains
Session 28
- SDTM DS dataset programming
Session 29
- ADaM introduction
Session 30
- Two ADaM lessons
- Derivation of key date variables in ADSL - ADaM_C1001_L101
- Derivation of new parameter - ADaM_C1004_L103
Session 31
- Derivation of new parameter - ADaM_C1004_L103
Session 32
- Derivation of new rows within a parameter - ADaM_C1005_L101b
Session 33
- BDS dataset baseline related concepts - ADaM_C1006_L101a
Session 34
- BDS dataset data imputation - LOCF records - ADaM_C1010_L102
Session 35
- Date imputations - ADaM_C1002_L103
- Visit windowing - ADaM_C1007_L101
Session 36
- Visit windowing - ADaM_C1007_L101
- Creation of an analysis flag - ADaM_C1009_L101
Session 37
- Creation of analysis flags - ADaM_C1009_L102, ADaM_C1009_L105
- Shift from baseline - ADaM_C1012_L101
Session 38
- Population flags in ADSL - ADaM_C1001_L102
Session 39
- ADaM_C1001_L103a - Treatment related variables
- ADaM_C1001_L103b - Treatment grouping variables
- ADaM_C1001_L104 - Baseline variables
- ADaM_C1001_L105 - Grouping variables
Session 40
- ADaM_C1003_L102a - Treatment emergence
- ADaM_C1011_L101c - Variables for criteria evaluation
Session 41
- Full ADSL programming - ADaM_ADSL_L1101
Session 42
- Full BDS programming - ADaM_ADEG_L1101
Session 43
- Introduction to Tables programming
- TFL_TABGEN_L201
Session 44
- Introduction to Tables programming - continued
- TFL_TABGEN_L201
Session 45
- TFL_TABGEN_L201
Session 46
- Proc Report Basics
Session 47
- TFL_TABGEN_L202
- TFL_TABGEN_L301
Session 48
- TFL_TABGEN_L302
- TFL_TABGEN_L401
- Outputs sharing same layout
- TFL_TDM_L100
- TFL_TEX_L101
Session 49
- TFL_TVS_L101
- TFL_TDS_L101
Session 50
- Adverse Event Tables
- TFL_TAE_L100 - AE Overview table
- TFL_TAE_L105 - AE by preferred term table
- TFL_TAE_L101 - AE by system organ class and preferred term table
Session 51
- Shift Tables
- TFL_TEG_L106 - Basic example
Session 52
- Processing of data in Tables programming
Session 53
- Quick overview of common listings
Session 54
- Introduction to Inferential analysis in clinical trials
- One sample t-test
- Fisher's exact test
Session 55
- Introduction to Inferential analysis in clinical trials
- Exact binomial test - TFL_TIS_L131
- ANOVA - Analysis of Variance - TFL_TIS_L121
- ANCOVA - Analysis of Covariance - TFL_TIS_L151
Session 56
- Inferential analysis in clinical trials
- ANCOVA - Analysis of Covariance - TFL_TIS_L151
- MMRM - Repeated measures analysis - TFL_TIS_LREPMS101
Session 57
- Time to event in clinical trials
- ADaM concepts - ADaM_C1013_L101
- Table related to TTE - TFL_TTTE_L101
Session 58
- Line plot - TFL_FGN_LLINE101
- Scatter plot - TFL_FGN_LSCATTER101
Session 59
- Scatter plot - TFL_FGN_LSCATTER101
- Bar chart - TFL_FGN_LBAR101
Session 60
- Box plot - TFL_FGN_LBOXPLOT101
- Spider plot - TFL_FGN_LSPIDER101