如何通过循环将excel中的列分配给R中的变量?
我真的不擅长循环,即使它很简单。在excel中,使用如何通过循环将excel中的列分配给R中的变量?,r,excel,R,Excel,我真的不擅长循环,即使它很简单。在excel中,使用col_names=TRUE,我想使用每列作为自变量,如x_I,1:256中的I,以及第257列作为因变量。excel有257列作为变量,如下所示: 1 2 3 4 5 ... 255 256 257 R1 -2.2 -5.4 -1.4 -2.4 -4.9 ... -8.9 -7.8 69 R2 -1.2 -3.3 -0.5 -1.6 -4.0
col_names=TRUE
,我想使用每列作为自变量,如x_I,1:256中的I,以及第257列作为因变量。excel有257列作为变量,如下所示:
1 2 3 4 5 ... 255 256 257
R1 -2.2 -5.4 -1.4 -2.4 -4.9 ... -8.9 -7.8 69
R2 -1.2 -3.3 -0.5 -1.6 -4.0 ... -7.0 -5.5 50
R3 ... ...
R4 ... ...
R5 ... ...
我试过了
>data <- read_excel("data.xlsx",col_names = T)
>for (i in 1:256) {
x_i <- data$`i`
}
>的数据(1:256中的i){
x_i y x lmr这将使用256个单独的对象(每个数据列对应一个
数据帧)扰乱您的全局环境。相反,为什么不只使用一个对象--数据
数据框--然后在需要时引用相应的列呢?如果你告诉我们更多关于你要做的事情,我们可以提供更具体的建议。要建立回归模型,请将数据保存在数据框中并执行以下操作:lmr=lm(y~x1+x2,data=data)
,其中y
、x1
、x2
等是数据
数据框中的列名称。通常,将数据保存在数据框中,并根据需要引用列。与lm
类似,许多R函数都有数据
参数,这是将数据框传递给函数的方式。然后,您可以在函数中使用数据框的列名。要创建大型回归公式而不必键入每个列名,您可以这样做:lmr=lm(重新格式化(名称(数据)[2:257],response=names(数据)[1]),data=data)
。运行重新格式化(名称(数据)[2:257],response=names(数据)[1])
查看重新格式化的输出。
>y <- data$'257'
>X <- c(x_1,x_2,...,x_256)
>lmr <- lm(y~X)