R - ошибкаfitfitJM «аргументы должны иметь одинаковую длину» - PullRequest
0 голосов
/ 04 декабря 2018

Я пытаюсь использовать пакет JMBayes, и у меня возникают проблемы с использованием модели после ее создания.Точнее говоря, я пытаюсь использовать функцию «SurvfitJM» для набора тестовых данных и получаю следующую ошибку (к сожалению, мне пришлось повторно набрать это на скриншоте, извините за опечатки):

survfitJM(jointFit,newdata = test_data,idVar = "subject_id")

Error in tapply(row.names(newdata), id, tail, n=1L): arguments must have the same length
Traceback:

1. survfitJm(jointFit, newdata = test_data, idVar = "subject_id")
2. survfitJM.JMbayes(jointFit, newdata = test_data, idVar = "subject_id")
3. newdata[tapply(row.names(newdata), id, tail, n = 1L), ]
4. `[.data.frame`(newdata, tapply(row.names(newdata), id, tail, n = 1L), )
5. tapply(row.names(newdata), id, tail, n = 1L)
6. stop("arguments must have same length")

Я копался в исходном коде и пытался вручную применить шаги, чтобы заново создать ошибку, но не смог.Исходя из исходного кода, мне кажется, чтоfastfitJM вызывает функцию surfitJM.jointModel, и моя ошибка происходит в строке 48 в этом файле.Учитывая это, мне показалось, что выполнение следующих команд должно позволить мне заново создать проблему и диагностировать причину (из строк 32-48 в исходном коде):

id <- as.numeric(unclass(test_data[['subject_id']]))
id <- id. <- match(id,unique(id))
id <- id[rep(TRUE,nrow(test_data))]
test_data[tapply(row.names(test_data),id,tail,n=1L),]

Однако я былсмог успешно выполнить эти команды без ошибок.

Теперь я не уверен, что я мог делать неправильно и вызывать эту ошибку.Любая помощь или предложения будут оценены здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...