【问题标题】:R Software: Creating a table of r-squares from a table with multiple data seriesR 软件:从具有多个数据系列的表创建 r 方表
【发布时间】: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


    【解决方案1】:

    我们可能需要

    lst1 <- lapply(df[-1], (x) rsq(x, df$A))
    names(lst1) <- paste0("A.", names(lst1))
    as.data.frame(lst1)
    

    【讨论】:

      猜你喜欢
      • 2013-07-26
      • 2021-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-23
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      相关资源
      最近更新 更多