我在R,df中有一个数据框,其中每一行X是一个主题(N = 100),每一列S是每个任务中每个主题在两年内的每个主题的得分。因此,我有一个100个科目的数据框和24个观察间隔1个月的间隔(忽略月/日差异)。
问题1:我如何为每个主题拟合一条线(线性回归)?我无法理解如何在列上执行此操作,而不是列中的行。
问题2:如何在整个数据集中拟合一条线(线性回归)?我问,因为我想将数据集分成A组和B组(即一个列标记为条件:{A,B}),并在24个时间点内为每个主题子集拟合一条线。
如果这是一个简单的问题,请道歉。答案 0 :(得分:2)
我根据您的描述构建了一个数据集。如果这很有用,也许可以将它包含在你自己的问题中。
df<- as.data.frame(matrix(rep(1:24,100)+rnorm(2400),nrow=100,byrow=T))
names(df)<- paste("S",1:24,sep="")
df$ID<-1:100
df$group <- as.factor(sample(c("A","B"),100,replace=T))
现在融化数据框以将S1到S24列作为因子变量。
library(reshape2)
m<- melt(df,id.vars=c("ID","group"))
然后,您可以使用以下类型的调用来检查特定ID的线性时间模型。您可以使用lapply
一次性完成所有ID。
summary(lm(value~as.numeric(variable), data=m, subset=ID==5))
这将按照组预测的所有项目进行建模。请注意,组因子被强制为数字。在这种情况下,A为1,B为2。
summary(lm(value~group, data=m))