[R] help with a regression problem

R Heberto Ghezzo, Dr heberto.ghezzo at mcgill.ca
Wed Aug 1 15:06:30 CEST 2012


Hello,
I have a big data frame where consecutive time dates and corresponding observed values for each subject (ID) are on a line. I want to compute the linear slope for each subject. I would like to use apply but I do
not know how to express the corresponding function. An example using a loop follows 
#
# create dummy data set There are missing values
 a <- c(1,2,3,4, 1,1,1,1, 2,2,3,3, 3,4,NA,4, 5,5,5,5,
            2.1,2.2,2.3,2.4, 2.3,2.4,2.6,2.6, 2.5,2.6,2.9,3,
            2.6,NA,3.2,4)
a <- matrix(a, nr=4)
aa <- as.data.frame(a)
names(aa) <- c("ID","X1","X2","X3","X4","Y1","Y2","Y3","Y4")
#
#  I want the regression coefficientes of the Y on the X for each ID
#
sl <- rep(NA,4)
for(i in 1:4) {
  x1 <- a[i,2:5]
  y1 <- a[i,6:9]
  sl[i] <- lm(y1 ~ x1)$coef[2]
}
sl
#
#   I would like to use apply on the data.frame aa but with which function?
#
sl <- apply(aa,1,FUN) # FUN = ??
#
Thanks for any help

R.Heberto Ghezzo Ph.D.
Montreal - Canada


More information about the R-help mailing list