Вопросы

Как запустить модель с переменными из разных фреймов данных несколько раз с lapply в R

У меня 2 фрейма данных

#dummy df for examples:
set.seed(1)
df1 <- data.frame(t = (1:16), 
                 A = sample(20, 16),
                 B = sample(30, 16),
                 C = sample(30, 16))

df2 <- data.frame(t = (1:16),
                  A = sample(20, 16),
                  B = sample(30, 16),
                  C = sample(30, 16))

Я хочу сделать это для каждого столбца в обоих фреймах данных (кроме столбца t):

model <- lm(df2$A ~ df1$A, data = NULL)

Я пробовал что-то вроде этого:

model <- function(yvar, xvar){
  lm(df1$as.name(yvar) ~ df2$as.name(xvar), data = NULL)
}
lapply(names(data), model)

но это явно не работает. Что я делаю неправильно?

В конце концов, я действительно хочу получить коэффициенты и прочее из моделей. Но меня останавливает то, как многократно запускать линейную модель с переменными из разных фреймов данных.

результат, который мне нужен, я думаю, он должен выглядеть примерно так:

# [[1]]
# Call:
#   lm(df1$as.name(yvar) ~ df2$as.name(xvar), data = NULL)
# 
# Residuals:
#   Min      1Q  Median      3Q     Max 
# -0.8809 -0.2318  0.1657  0.3787  0.5533 
# 
# Coefficients:
#   Estimate Std. Error t value Pr(>|t|)    
# (Intercept)    -0.013981   0.169805  -0.082    0.936    
# predmodex[, 2]  1.000143   0.002357 424.351   <2e-16 ***
#   ---
#   Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# 
# Residual standard error: 0.4584 on 14 degrees of freedom
# Multiple R-squared:  0.9999,  Adjusted R-squared:  0.9999 
# F-statistic: 1.801e+05 on 1 and 14 DF,  p-value: < 2.2e-16
# 
# [[2]]
# Call:
#   lm(df1$as.name(yvar) ~ df2$as.name(xvar), data = NULL)
# 
# Residuals:
#   Min      1Q  Median      3Q     Max 
# -0.8809 -0.2318  0.1657  0.3787  0.5533 
# 
# Coefficients:
#   Estimate Std. Error t value Pr(>|t|)    
# (Intercept)    -0.013981   0.169805  -0.082    0.936    
# predmodex[, 2]  1.000143   0.002357 424.351   <2e-16 ***
#   ---
#   Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# 
# Residual standard error: 0.4584 on 14 degrees of freedom
# Multiple R-squared:  0.9999,  Adjusted R-squared:  0.9999 
# F-statistic: 1.801e+05 on 1 and 14 DF,  p-value: < 2.2e-16
# 
# [[3]]
# Call:
#   lm(df1$as.name(yvar) ~ df2$as.name(xvar), data = NULL)
# 
# Residuals:
#   Min      1Q  Median      3Q     Max 
# -0.8809 -0.2318  0.1657  0.3787  0.5533 
# 
# Coefficients:
#   Estimate Std. Error t value Pr(>|t|)    
# (Intercept)    -0.013981   0.169805  -0.082    0.936    
# predmodex[, 2]  1.000143   0.002357 424.351   <2e-16 ***
#   ---
#   Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
# 
# Residual standard error: 0.4584 on 14 degrees of freedom
# Multiple R-squared:  0.9999,  Adjusted R-squared:  0.9999 
# F-statistic: 1.801e+05 on 1 and 14 DF,  p-value: < 2.2e-16

Отвечает ли это на ваш вопрос? Подбор нескольких регрессионных моделей путем изменения только одной независимой переменной внутри mutate ()   —  person Simón Pérez    schedule 22.04.2021

Читать:
Не удается подключиться к базе данных MySQL из Monodevelop в Linux Mint

@jared_mamrot Думаю, я мог бы адаптировать часть этого поста к тому, что я хотел. Но я думаю, что цель этого поста отличалась от моей, поэтому я скажу, что он не отвечает на мой вопрос. Также я хотел сделать это с lapply. Как вы можете видеть из ответа @Ronak Shah, то, что я хотел, было довольно простым. Спасибо за предложение.   —  person Simón Pérez    schedule 22.04.2021

Великолепно — спасибо за разъяснения 🙂   —  person Simón Pérez    schedule 23.04.2021

Похожие записи

Как получить доступ к дополнительным ресурсам AWS из созданной Amplify функции Lambda?

admin

Как проверить конкретную версию Subversion из командной строки?

admin

API-шлюз не возвращает ответ

admin

Как открыть файл Python в редакторе ожидания двойным щелчком по файлу (windows 10)

admin

Странное поведение / проблемы с функцией Google Cloud (триггер https)

admin

Автоматический вход на сайт с помощью скрипта Google Apps

admin