我想计算几列之间的皮尔逊相关系数。JasonAizkalns在this thread中发布的解决方案对我非常有用。
df %>%
select_if(is.numeric) %>%
group_by(year) %>%
group_map(~ correlate(.x))
现在我想知道两件事:
1.如何获得p值?
1.为什么有些相关系数标红了?我在资料中没有发现,这些是否已经是显著相关?如果是,使用了哪个显著性水平?
我正在寻找一个尽可能简单的扩展,而不必使用完全不同的方法。
感谢您的任何提示!
- 编辑1(11/28/22):* 因为我的分组变量(“trainingsmodus”)是一个字符变量,并且我得到了下面的错误消息,所以我对我的代码进行了修改。
group_by()
中的错误:!必须按.data
中找到的变量分组。列trainingsmodus
未找到。回溯:
1.... %〉% ...
- dplyr:::分组依据.数据.帧(.,训练模式)
我的改编代码:
df %>%
select_if(is.character) %>%
group_by(year) %>%
group_map(~ correlate(.x)) %>%
add_column(year)
即使我将分组变量创建为数值变量,两个组的结果也完全相同,这是没有意义的。有人能告诉我如何更正代码吗?
- 编辑2(11/28/22)* 复制我的df和代码:
df <- data.frame(year = c("lorem", "ipsum", "lorem", "ipsum"),
var1 = 4:7,
var2 = 5:8,
var3 = 6:9,
var4 = 7:10)
library(rstatix)
df %>%
select_if(is.character) %>%
group_by(year) %>%
group_map(~ cor_test(df,
vars = c("var1", "var2", "var3", "var4"),
vars2 = c("var1", "var2", "var3", "var4") %>%
filter(is.finite(statistic)))
1条答案
按热度按时间u4dcyp6a1#
如何获得p值?
correlate()
没有提供这些信息,所以你需要使用另一个工具。rstatix
包有一个函数cor_test()
,可以使用它来代替:为什么有些相关系数用红色标记?
默认情况下,Tibble以红色显示负值或NA值,以便于注意。