> rm(list =ls())
> library(readr)
> df <- read.csv("http://commres.net/_media/r/plannedbehavior.csv")
> colnames(df) <- c("att", "nor", "cont", "int", "beh")
> head(df)
   att  nor cont  int  beh
1 2.31 2.31 2.03 2.50 2.62
2 4.66 4.01 3.63 3.99 3.64
3 3.85 3.56 4.20 4.35 3.83
4 4.24 2.25 2.84 1.51 2.25
5 2.91 3.31 2.40 1.45 2.00
6 2.99 2.51 2.95 2.59 2.20
> 
> attach(df)
>
> lm.ba.01 <- lm(beh ~ att + int)
> lm.ba.02 <- lm(beh ~ int)
> lm.ba.03 <- lm(int ~ att)
> lm.ba.04 <- lm(att ~ int)
> lm.ba.05 <- lm(beh ~ att)
> 
> abc <- summary(lm.ba.01)$r.square
> ab <-  summary(lm.ba.02)$r.square
> bc <-  summary(lm.ba.05)$r.square
> ab+bc
[1] 0.2602023
> abc
[1] 0.1989125
> ab+bc - abc
[1] 0.0612898
> 
> int.reg <- lm.ba.03$fitted.values - mean(int)
> # be/abef 부분
> int.res <- summary(lm.ba.03)$residuals
> # af/abef 부분
> 
> lm.ba.031 <- lm(beh~int.reg)
> lm.ba.032 <- lm(beh~int.res)
> b2 <- summary(lm.ba.031)$r.square
> a2 <- summary(lm.ba.032)$r.square
> a2
[1] 0.1369399
> b2
[1] 0.06197255
> a2+b2
[1] 0.1989125
> ab
[1] 0.1982297
> 

….