fm_xz <- lm(x ~ z, data=d)
fm_yz <- lm(y ~ z, data=d)
resid_xz <- resid(fm_xz)
resid_yz <- resid(fm_yz)
cor(resid_xz, resid_yz)
## [1] 0.1550061
pcor(d)
## $estimate
## x y z
## x 1.0000000 0.1550061 0.3128204
## y 0.1550061 1.0000000 0.6004240
## z 0.3128204 0.6004240 1.0000000
##
## $p.value
## x y z
## x 0.000000000 1.255277e-01 1.618733e-03
## y 0.125527685 0.000000e+00 5.063869e-11
## z 0.001618733 5.063869e-11 0.000000e+00
##
## $statistic
## x y z
## x 0.000000 1.545310 3.243719
## y 1.545310 0.000000 7.394803
## z 3.243719 7.394803 0.000000
##
## $n
## [1] 100
##
## $gp
## [1] 1
##
## $method
## [1] "pearson"