使用dplyr :: mutate()的列子集上的行方式cor()

use*_*672 3 r rows subset correlation dplyr

set.seed(8)
df <- data.frame(
  A=sample(c(1:3), 10, replace=T), 
  B=sample(c(1:3), 10, replace=T),
  C=sample(c(1:3), 10, replace=T),
  D=sample(c(1:3), 10, replace=T),
  E=sample(c(1:3), 10, replace=T), 
  F=sample(c(1:3), 10, replace=T))
Run Code Online (Sandbox Code Playgroud)

想要将列的子集传递给dplyr mutate()并进行逐行计算,例如cor()在列AC和DF之间获得相关性,但无法弄清楚如何.在这里,这里这里找到了SO的灵感,但却未能产生可接受的代码.例如,我试过这个:

require(plyr)
require(dplyr)
df %>%
  rowwise() %>%
  mutate(c=cor(.[[1:3]],.[[4:6]]))
Run Code Online (Sandbox Code Playgroud)

akr*_*run 6

你可以试试

df %>% 
   rowwise() %>% 
   do(data.frame(., Cor=cor(unlist(.[1:3]), unlist(.[4:6]))))
Run Code Online (Sandbox Code Playgroud)