Open Sirhurryup opened 3 years ago
@Sirhurryup You need to specify all variables in the vars
argument, not just the continuous variables. Try changing vars = convars
to vars = c(convars, catvars)
and re-running your code.
The behavior you've reported can be reproduced with the following example (modified from the?CreateTableOne
documentation page):
## Load package
library(tableone)
## Load data
data(pbc, package = "survival")
## Make categorical variables factors
varsToFactor <- c("status","trt","ascites","hepato","spiders","edema","stage")
pbc[varsToFactor] <- lapply(pbc[varsToFactor], factor)
## Identify continuous variable names
convars <- c("time", "age")
## Identify categorical variable names
catvars <- c("status", "edema")
## Create Table 1 that doesn't show categorical variables when printed
CreateTableOne(vars = convars, strata = c("trt"), data = pbc, factorVars = catvars)
### Stratified by trt
### 1 2 p test
### n 158 154
### time (mean (SD)) 2015.62 (1094.12) 1996.86 (1155.93) 0.883
### age (mean (SD)) 51.42 (11.01) 48.58 (9.96) 0.018
## Create Table 1 now showing all variables when printed
CreateTableOne(vars = c(convars, catvars), strata = c("trt"), data = pbc, factorVars = catvars)
### Stratified by trt
### 1 2 p test
### n 158 154
### time (mean (SD)) 2015.62 (1094.12) 1996.86 (1155.93) 0.883
### age (mean (SD)) 51.42 (11.01) 48.58 (9.96) 0.018
### status (%) 0.894
### 0 83 (52.5) 85 (55.2)
### 1 10 ( 6.3) 9 ( 5.8)
### 2 65 (41.1) 60 (39.0)
### edema (%) 0.877
### 0 132 (83.5) 131 (85.1)
### 0.5 16 (10.1) 13 ( 8.4)
### 1 10 ( 6.3) 10 ( 6.5)
I created an object of categorical variables that were of character type in my dataset. Then I created a Tableone object using the tutorial convention. When I execute that file, the categorical variables never return. I tried to convert my character variables to factors and run the CreateTableOne() to produce the output. Still, the categorical variables never appear.
n 2535 days_los_estimate (mean (SD)) 15.51 (27.41) days_hemodialysis (mean (SD)) 0.68 (4.32) days_peritoneal_dialysis (mean (SD)) 0.04 (0.63) days_crrt (mean (SD)) 0.38 (2.37) days_vent (mean (SD)) 2.46 (8.69) age_estimate (mean (SD)) 60.83 (16.20) age_exact (mean (SD)) 61.33 (16.20) ed_los_in_hrs (mean (SD)) 9.68 (15.86) ed_ip_los_in_hrs (mean (SD)) 440.98 (794.40)
Do the variables that require transformation need to be in another format? Unsure of how to display the categorical variables. I tried using as.factor in a mutate() to change the data type and the tableone object still only returns the continuous variables.