2

我正在使用来自在线练习教程的数据集,代码可以在第 7 页底部找到(https://tomhouslay.files.wordpress.com/2017/02/indivvar_mv_tutorial_asreml.pdf

在教程中,他们声明他们正在引入“trait”作为关键字来表示多变量模型,但是当我运行完全相同的代码时,我得到以下信息:

eval(parse(text = x), envir = data, enclos = asreml4Env) 中的错误:找不到对象“特征”。

哈吉斯练习 csv 文件可以从这里下载: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)
4

1 回答 1

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)
于 2021-03-12T20:38:02.003 回答