【发布时间】:2016-09-26 15:55:11
【问题描述】:
我尝试对数据框执行简单的lm() 回归分析。明确地说,我想在数据框的列名和每一行之间执行回归分析。我的数据框如下所示:
d = data.frame(replicate(6,rnorm(6)))
colnames(d) = as.character(0:5)
但是,我的lm() 不起作用:
lm(d[1,]~colnames(d))
#Error in model.frame.default(formula = d[1, ] ~ colnames(d), drop.unused.levels = TRUE) :
#invalid type (list) for variable 'd[1, ]'
如果有人帮助我运行此程序,我将不胜感激。 lm() 函数我用的不多。
我知道lm() 函数需要lm(columnA ~ columnB, data = mydata) 格式的内容,因此我尝试在此处发布问题之前为我的数据构建数据框:
cbind(d[1,],0:5)
但是,这不会降低d 的尺寸。不知道为什么。如果有人也能回答这个问题,即使对 R 的更一般的理解会对我有很大帮助。
【问题讨论】:
-
lm( data.frame(y = unlist(d[1,]), x = 0:5) ) -
我认为一个简单的方法是
stack()。但是为什么值在同一行?同一行中的所有值是否在同一单位上测量? -
是的,同一行中的值是在相同的东西上测量的。 colnames 指的是测量的数量。我知道表格的结构并不理想。
标签: r dataframe regression linear-regression lm