我想关联两个变量,并将输出分别报告给第三个变量的级别。
我的数据与此示例类似:
var1 <- c(7, 8, 9, 10, 11, 12)
var2 <- c(18, 17, 16, 15, 14, 13)
categories <- c(1, 2, 3, 1, 2, 3)
我想在类别中将var1与var2相关联,这样结果将显示类别1的var1和var2的值与类别2和类别3的相关性。
在SAS中,我会这样做:
PROC CORR DATA=x;
BY CATEGORY
VAR VAR1
WITH VAR2;
RUN;
答案 0 :(得分:1)
您可以将记录放入data.frame中,然后按照cateogies进行拆分,然后为每个类别运行相关。
sapply(
split(data.frame(var1, var2), categories),
function(x) cor(x[[1]],x[[2]])
)
使用dplyr
库
library(dplyr)
data.frame(var1=var1, var2=var2, categories=categories) %>%
group_by(categories) %>%
summarize(cor= cor(var1, var2))
答案 1 :(得分:0)
您也可以使用by
sapply(by(cbind(var1, var2), categories, FUN=cor),`[`,2)
#1 2 3
#-1 -1 -1