我创建类似下面做一些我称为“加权”回归的脚本:
library(plyr)
set.seed(100)
temp.df <- data.frame(uid=1:200,
bp=sample(x=c(100:200),size=200,replace=TRUE),
age=sample(x=c(30:65),size=200,replace=TRUE),
weight=sample(c(1:10),size=200,replace=TRUE),
stringsAsFactors=FALSE)
temp.df.expand <- ddply(temp.df,
c("uid"),
function(df) {
data.frame(bp=rep(df[,"bp"],df[,"weight"]),
age=rep(df[,"age"],df[,"weight"]),
stringsAsFactors=FALSE)})
temp.df.lm <- lm(bp~age,data=temp.df,weights=weight)
temp.df.expand.lm <- lm(bp~age,data=temp.df.expand)
你可以看到,在temp.df
,每一行都有它的重量,我的意思是,共有1178样品是但对于同一行bp
和age
,他们合并成1行的代表weight
列。
我用weight
参数在lm
功能,然后我交叉与另一个数据帧,该检查结果temp.df
数据帧被“膨胀”。 但我发现lm
的2数据帧不同的输出。
难道我曲解weight
在参数lm
功能,任何人都可以让我知道如何我运行回归正常(即没有手动扩展数据帧)的呈现就像一个数据集temp.df
? 谢谢。