试用数据是这样的:
x1 x2 x3 y
1 1 1 2
2 5 1 4
3 8 1 5
4 6 1 87
5 3 2 4
6 5 2 8
7 78 2 0
8 9 2 1
9 3 2 9
是dta格式。函数为:
library("foreign")
dat3<-read.dta("试用数据.dta")
install.packages("plyr")
library("plyr")
f<-function(y,x1,x2){
f1<-lm(y~x1+x2)
coef(f1)
z=f1$coef
z[2]
}
g<-ddply(dat3, 'x3', summarize, x6=f(y,x1,x2))
结果为:
是正确的。
但是当我把数据集改成企业数据时,程序为:
library("foreign")
dat2<-read.dta("企业数据.dta")
library("plyr")
f<-function(lwage,big,midbig){
f1<-lm(lwage~big+midbig)
coef(f1)
z=f1$coef
z[2]
}
g<-ddply(dat2,'userid',summarize,x4=f(lwage,big,midbig))其中lwage,big,midbig,userid都是类似于x1,x2的变量,但是结果为:
x4的所有元素都是NA,即
userid x4
1101017001 NA
1101050052 NA
等等。
我用mode()命令检查了所有变量,都是numeric,而dat2和dat3都是数据框。为什么用自编数据就可以,用企业数据就不行?我该怎么办?谢谢各位大神了!!