jinseob2kim/jstable

label.R LabelepiDisplay function error : When using a dataset that contains a factor variable with "vs" in its name

thisis05 opened this issue · 1 comments

When using a dataset that contains a factor variable with "vs" in its name


현재 LabelepiDisplay = function(epiDisplay.obj, label = F, ref) 에서,

data의 factor variable의 group이 3개 이상이면서 변수 명에 'vs'가 들어가는 경우 dimesion error가 생깁니다.

예를 들어,

#data <- 분석용 데이터
#label <- 분석용 데이터 data의 label
model <- glm(outcome ~ a_vs_b, data = data, family = binomial) # a_vs_b : group이 3개 이상인 factor variable
LabelepiDisplay(glmshow.display(model), label = T, ref = label)

이 경우, LabelepiDisplay function에서

if (nrow(tb.main) > 2 & label == T){ ... } 에서
cond.lv2 <- grepl(":", x[1]) & grepl("vs", x[1]) 가 TRUE가 되어,

if (cond.lv2){ ... } 조건에 걸려 string split이 되기 때문에 결과적으로 return 값의 row가 refrence를 표시하는 row인 첫 번째 row만 남게 됩니다.

따라서 rownames(tb.compact) <- unlist(vl_label) 에서 length of 'dimnames' [1] not equal to array extent Error가 뜨게 됩니다.

변수명에 'vs'가 들어가는 경우에 대해 수정이 필요할 듯 합니다.

I fixed the issue at 1.1.1 CRAN. Thanks!