R 如何使所有变量的长度相同?
我想在线性模型中拟合数据,但由于长度不同而无法执行。如何解决这个问题R 如何使所有变量的长度相同?,r,R,我想在线性模型中拟合数据,但由于长度不同而无法执行。如何解决这个问题 temp<-as.factor(c(rep(150,2),rep(160,2),rep(170,2))) pressure<-as.factor(c(rep(200,6),rep(215,6),rep(230,6))) obs<-c(90.4,90.2,90.1,90.3,90.5,90.7,90.7,90.6,90.5,90.6,90.8,90.9,90.2,90.4,89.9,90.1,90.4,90.1
temp<-as.factor(c(rep(150,2),rep(160,2),rep(170,2)))
pressure<-as.factor(c(rep(200,6),rep(215,6),rep(230,6)))
obs<-c(90.4,90.2,90.1,90.3,90.5,90.7,90.7,90.6,90.5,90.6,90.8,90.9,90.2,90.4,89.9,90.1,90.4,90.1)
t1<-data.frame(temp,pressure,obs)
result<-lm(obs~pressure*temp)
temp我们需要指定数据
lm(obs~pressure*temp, t1)
#Call:
#lm(formula = obs ~ pressure * temp, data = t1)
#Coefficients:
# (Intercept) pressure215 pressure230 temp160 temp170 pressure215:temp160 pressure230:temp160 pressure215:temp170
# 9.030e+01 3.500e-01 -7.479e-14 -1.000e-01 3.000e-01 8.194e-14 -2.000e-01 -1.000e-01
#pressure230:temp170
# -3.500e-01
否则,它将检查在元素数量较少的全局环境中创建的变量。当我们创建data.frame
时,由于循环使用,元素被复制为具有相同的长度我们需要指定数据
lm(obs~pressure*temp, t1)
#Call:
#lm(formula = obs ~ pressure * temp, data = t1)
#Coefficients:
# (Intercept) pressure215 pressure230 temp160 temp170 pressure215:temp160 pressure230:temp160 pressure215:temp170
# 9.030e+01 3.500e-01 -7.479e-14 -1.000e-01 3.000e-01 8.194e-14 -2.000e-01 -1.000e-01
#pressure230:temp170
# -3.500e-01
否则,它将检查在元素数量较少的全局环境中创建的变量。当我们创建data.frame
时,由于循环使用,元素被复制为具有相同长度当您查看t1
数据帧时,是否正确?R在创建数据帧时自动循环temp
向量以匹配其他向量的长度,是否将右侧temp
值与其他行匹配?对包含每个变量(相关和独立)值的观测值执行线性回归。因此,重点不是解决R的技术问题,而是确保您的数据确实是正确的。如果最终得到不同长度的向量,这意味着数据集有问题,解决方案必须是纠正数据。当您查看t1
数据帧时,它是否正确?R在创建数据帧时自动循环temp
向量以匹配其他向量的长度,是否将右侧temp
值与其他行匹配?对包含每个变量(相关和独立)值的观测值执行线性回归。因此,重点不是解决R的技术问题,而是确保您的数据确实是正确的。如果最终得到不同长度的向量,这意味着数据集有问题,解决方案必须是纠正数据。