#r #asreml
#r #asreml
Вопрос:
Я использую набор данных из онлайн-руководства по практике, и код можно найти внизу страницы 7 (https://tomhouslay .files.wordpress.com/2017/02/indivvar_mv_tutorial_asreml.pdf )
В руководстве они заявляют, что вводят «признак» в качестве ключевого слова для обозначения многомерной модели, но когда я запускаю точно такой же код, я получаю следующее:
Ошибка при оценке (parse(text = x), envir = data, enclos = asreml4Env): объект «признак» не найден.
CSV-файл haggis practice можно загрузить отсюда: https://figshare.com/articles/Haggis_data_behavioural_syndromes/4702540
Вот код, предоставленный в руководстве, что-то изменилось с функцией asreml?
asr_E_B_us <- asreml(cbind(scale(exploration),
scale(boldness)) ~ trait
trait:scale(assay_rep, scale = FALSE)
trait:scale(body_size),
random =~ ID:us(trait, init = c(1,
0.1,1)),
residual =~ units:us(trait, init = c(0.1,
0.1,0.1)),
data = HData,
maxiter = 100)
Ответ №1:
asreml
Функция запутывается, когда вы пытаетесь использовать scale
внутри функции. Сначала выполните масштабирование (а также вы должны превратить ID в фактор). Затем вызовите asreml
.
HData <- read.csv("syndrome.csv")
head(HData)
ID assay_rep boldness exploration fitness body_size
1 S_1 1 18.57 39.74 39 21.72
2 S_1 2 18.32 39.41 NA 21.55
3 S_1 3 20.33 40.16 NA 21.34
4 S_1 4 19.40 40.29 NA 20.78
5 S_2 1 20.70 39.47 56 25.71
6 S_2 2 18.60 40.12 NA 26.43
HData <- transform(HData, exploration=scale(exploration), boldness=scale(boldness),
ID = factor(ID))
asr_E_B_us <- asreml(cbind(exploration, boldness) ~ trait
trait:scale(assay_rep, scale = FALSE)
trait:scale(body_size),
random =~ ID:us(trait, init = c(1, 0.1,1)),
residual =~ units:us(trait, init = c(0.1, 0.1,0.1)),
data = HData,
maxiter = 100)