我正在学习混合效果模型的教程。本教程使用来自mlmRev包的egsingle数据集。作为教程的一部分,作者使用groupedData()作为:
egsingle <- groupedData(math ~ year | schoolid/childid, data = egsingle)
有人可以帮我理解&#34; schoolid / childid&#34;是指?
请注意,schoolid和childid都是因素!
此外,在本教程的后面,作者采用大小为50的样本,并使用lmList()通过使用以下内容来适合每个主题的OLS回归:
egsingle <- groupedData(math ~ year | schoolid/childid, data = egsingle)
samp <- sample(levels(egsingle$childid), 50)
level2.subgroup <- subset(egsingle, childid %in% samp)
# fitting a separate OLS regression line to each student
level2 <- lmList(math ~ year | childid, data = level2.subgroup)
plot(augPred(level2))
当我在上面运行lmList命令时,我收到了以下错误:
Error in eval(expr, envir, enclos) : object 'childid' not found
In addition: Warning messages:
1: In lmList(math ~ year | childid, data = level2.subgroup) :
lmList does not (yet) work correctly on groupedData objects
2: In Ops.factor(schoolid, childid) : ‘/’ not meaningful for factors
有谁可以帮我弄清楚为什么我会收到这些错误?
答案 0 :(得分:2)
正如RomanLuštrik评论的那样,lmList
表示“学校ID”和“嵌套在学校ID中的子ID”都是分组变量。嵌套格式正式构建了更高层次和更低层次之间的相互作用;启发式地,它让计算机知道“学校1中的孩子1”和“2中的孩子1”是不同的个体。
nlme
和lme4
个软件包中的## load data without loading package & dependencies
data(egsingle, package="mlmRev")
library("nlme")
egsingle <- groupedData(math ~ year | schoolid/childid, data = egsingle)
samp <- sample(levels(egsingle$childid), 50)
level2.subgroup <- subset(egsingle, childid %in% samp)
# fitting a separate OLS regression line to each student
level2 <- lmList(math ~ year | childid, data = level2.subgroup)
plot(augPred(level2))
版本之间存在冲突问题。如果从干净的R会话中运行完全这些行:
library("mlmRev")
它应该可以正常工作。如果您在之前nlme
加载nlme
(因此lme4
在搜索路径中nlme::lmList
之前),或者您明确地指定lme4::lmList
,这样您就不会意外地选择public void Modifier_Supplier()
{
SamsonEntities db = new SamsonEntities();
try
{
action = "MODIF";
if (gridSuppliers.CurrentRow != null && gridSuppliers.CurrentRow.DataBoundItem != null)
{
SupplierDisplay supAct = (SupplierDisplay)gridSuppliers.CurrentRow.DataBoundItem;
Supplier supUpd = db.Suppliers.Single(sup => sup.SupplierID == supAct.SupplierID);
supUpd.SupplierName = txtNom.Text;
supUpd.Address = txtAdresse.Text;
supUpd.City = txtVille.Text;
supUpd.PostalCode = mskPostal.Text;
supUpd.Contact = txtContact.Text;
Regex regex = new Regex(@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$");
Match match = regex.Match(txtCourriel.Text);
if (!match.Success)
{
MetroMessageBox.Show(this, "Ce courriel est invalide", "Message d'erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);
supUpd.Email = null;
return;
}
else
supUpd.Email = txtCourriel.Text;
supUpd.Phone = mskPhone.Text;
Regex regexWeb = new Regex(@"^(https?://)?([\da-z.-]+)\.([a-z\.]{2,6})([/\w .-]*)/?$");
Match matchWeb = regexWeb.Match(txtWeb.Text);
if (!matchWeb.Success)
{
MetroMessageBox.Show(this, "Ce site web est invalide", "Message d'erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);
supUpd.Website = null;
return;
}
else
supUpd.Website = txtWeb.Text;
db.SaveChanges();
FillSuppliers();
MetroMessageBox.Show(this, "Fournisseur mis à jour", "Confirmation", MessageBoxButtons.OK, MessageBoxIcon.Question);
}
}
。