I have 365 columns. In each column I have 60 values. I need to know the rate of change over time for each column (slope or linear coefficient). I created a generic column as
Here's a way to do it:
# Fake data
dat = data.frame(x=1:60, y1=rnorm(60), y2=rnorm(60),
y3=rnorm(60))
t(sapply(names(dat)[-1], function(var){
coef(lm(dat[,var] ~ x, data=dat))
}))
(Intercept) x
y1 0.10858554 -0.004235449
y2 -0.02766542 0.005364577
y3 0.20283168 -0.008160786
Now, where's that turpentine soap?
First of all, statistically this might not be the best possible approach to analyse temporal data. Although, regarding the approach you propose, it is very simple to build a loop to obtain this:
Coefs <- matrix(,ncol(Data),2)#Assuming your generic 1:60 column is not in the same object
for(i in 1:ncol(Data)){
Coefs[i,] <- lm(Data[,i]~GenericColumn)$coefficients
}