【发布时间】:2015-11-26 09:18:22
【问题描述】:
我有一个包含 M 行的数据文件,每行包含 N 个空格分隔的十进制值。没有标题行。
每一行包含 N 个不同 {X,Y} 元组的“Y”部分。 “X”部分是“位置”/100。因此,如果一行以“5, 6, 7”开头,那么这些将暗示元组 {0.01, 5}, {0.02, 6}, {0.03, 7}。
对于每一行,我需要计算最小二乘拟合并提取斜率。最终结果应该是一个包含 M 个斜率值的向量 (a)。
这是我目前所拥有的。它可以工作,但速度很慢,而且可能比必要的复杂:
table <- read.table("data.txt", header = FALSE)
x = c()
for (i in 1:length(table)) {
x <- append(x, 0.01 * i)
}
a = c()
for (i in 1:length(table[,1])) {
a <- append(a, lm(unlist(table[i,], use.names = FALSE) ~ x)$coefficients[[2]])
}
一些具体问题:
有没有比在 for 循环中追加更好的方法来生成 (x) 向量?
我什至需要 (x) 向量,还是有办法将“Y”值的单个向量传递给 lm() 函数并让它从位置推断“X”值?
有没有一种简单的方法可以将数据导入“向量的向量”而不是 R 的“表”结构?
我是 R 的新手,因此您可以提出任何改进建议。
【问题讨论】:
标签: r regression