可复制的示例:
df <- data.frame(cbind("level" = c("1", "2", "1", "2", "2", "1", "2", "1", "2", "1", "2", "2"), "Thriving" = c(2, 2, NA, runif(9, 2.0, 5.0)), "Performance" = c(2, 3.5, 2.3, 4.2, NA, runif(7, 1.9, 6.9)), "Mastery_Climate" = c(runif(10, 2.2, 6.5), NA, 2.3), "Competitive_Climate" = c(NA, runif(4, 1.0, 3.6), NA, NA, runif(5, 1.5, 2.8)), "Collaboration" = c(runif(8, 2.2, 7.0), NA, NA, 5.5, 2.1)))
df$level <- revalue(df$level, c("1" = "management", "2" = "subordinate"))
我想创建一个关联表,其中将相关性按级别(管理或下属)分组,其中“兴旺”和“绩效”作为结果变量作为列,而其他三个变量作为行。 现在,我实际上有一个更大的数据框,并且只需要几个变量,这就是为什么我要使用选择功能。 现在,以下代码的主要问题是缺少NA。使用此代码,将忽略那些变量中具有单个NA的所有行,并且几乎没有剩余的行。 能否请您帮我找到一个代码,该代码仅一次忽略每个相关性的NA而不遗漏任何内容? 另外,如果将报告重要的相关性,并且最终,如果我可以将相关性表打印到文件中,那就太好了。 到目前为止,我的代码:
df %>%
select(Thriving, Performance, Mastery_Climate, Competitive_Climate, Collaboration, level) %>%
na.omit -> AG
by(AG, INDICES = list(AG$level), FUN = function(x) cor(x[, c("Thriving", "Performance", "Mastery_Climate", "Competitive_Climate", "Collaboration")]))
非常感谢!