【发布时间】:2022-11-23 02:29:19
【问题描述】:
我有一个包含多列的 data.frame。框架中的第一列是因变量,其他列是各种自变量。我想创建一个包含所有 R2 的表,其中 column1 是 y,每列是不同的 x。
这是一个示例 data.frame:
df <- data.frame(
'A' = runif(20,min=0, max=100),
'B' = runif(20,min=0, max=100),
'C' = runif(20,min=0, max=100),
'D' = runif(20,min=0, max=100),
'E' = runif(20,min=0, max=100)
)
我正在使用一个函数来计算 R2:
rsq <-函数(x,y)总结(lm(y~x,na.action = na.omit))$r.squared
我希望输出看起来像这样:
A.B A.C A.D A.E
1 0.009213715 0.009213715 0.009213715 0.009213715
我知道我可以用这种方式对表进行硬编码:
r2_df<- data.frame(
'A~B'=rsq(x=df$B,y=df$A),
'A~C'=rsq(x=df$C,y=df$A),
'A~D'=rsq(x=df$D,y=df$A),
'A~E'=rsq(x=df$E,y=df$A)
)
但是,更重要的是,我的数据框会不时更改,具有不同的数据系列和不同的列数。 “A”将保持不变,但下次我提取数据时,我可能会以列“A”、“B”、“X”、“Y”、“Z”、“P”、“O”、 S”。所以,我不想硬编码任何东西,我只想将 A 设置为 y,并让它循环遍历其余列以生成表格。我是 R 的新手,我正在努力获得一个 apply 函数来生成任何东西。
感谢您的任何帮助!
【问题讨论】:
标签: r shiny statistics data-science linear-regression