Невозможно отобразить значения p при использовании facet.by из ggsurvplot. Сообщение об ошибке: «переменная длина отличается» - PullRequest
0 голосов
/ 01 мая 2020

У меня есть проблема, которую я не знаю, как решить. И это, кажется, связано с моим набором данных (или это?). На самом деле, я могу отображать различные значения p при использовании facet.by, когда использую ваш пример из issue # 205 через набор данных «двоеточие». Однако он не работает с моим набором данных, который доступен в моем профиле Github здесь (https://github.com/CroixJeremy2/Data-frame-for-stack-overflow.git).

Ожидаемое поведение

Я хотел бы иметь возможность строить различные значения p, как в выпуске # 205 с моим набором данных.

Фактическое поведение

Я только возможность построения кривых через facet.by. Но я не могу построить значения p, которые должны автоматически рассчитываться для теста лог-ранга. Вместо этого в консоли R возвращается сообщение об ошибке:

"Error in model.frame.default(formula = Survival ~ Sex, data = list(ID = c(147L, :"
"les longueurs des variables diffèrent (trouvé pour 'Sex')"
# the last line translated from French to English means:
"variable lengths differ (found for Sex)"

Действия по воспроизведению проблемы

library(survival)
Survival = Surv(time = D$Age, event = D$outcome)
library(survminer)
fit = survfit(data = D, formula = Survival ~ Sex + Genotype)
ggsurvplot(fit = fit, data = D, pval = TRUE, facet.by = 'Genotype') #error message
ggsurvplot(fit = fit, data = D, facet.by = 'Genotype') #curves can be plotted

Примечания

Обратите внимание, что функция survdiff() отлично работает на моих наборах данных, чтобы вычислить значения p из тестов лог-ранга. Поэтому я не знаю, делаю ли я что-то не так в ggsurvplot() (наиболее вероятная гипотеза) или что-то не так в самой функции ggsurvplot() (маловероятно).

survdiff(data = D, subset = D$Ctrl, formula = Survival ~ Sex)
survdiff(data = D, subset = D$nKO, formula = Survival ~ Sex)
survdiff(data = D, subset = D$CRE_Ctrl, formula = Survival ~ Sex)
#works fine, p value returned, no message/warning/error returned.

Более того, переменные длины кажутся равными ... И у меня нет никаких значений "NA" в моем фрейме данных ... Так что я действительно не понимаю, почему у меня появляется это сообщение об ошибке ...

sapply(D,function(x) length(x))
# length = 298 for all my variables...

Спасибо заранее за ваш ответ и помощь,

...