繁体   English   中英

在一个数据框中选择变量以从另一个数据框中绘制

[英]Select variables in one data frame to plot from another

我有大量数据集,正在进行相关性的探索性筛选。 我想进行相关性测试,以找出明显相关的变量,然后将这些变量相互绘制。

data <- data.frame(a = 1:10, b = c(1.5*(1:9), 10), c = 2*(1:10), d = sample(1:5, 10, replace = T))
cor_data <- corr.test(data)

sig_cor <- ifelse(cor_data$p <0.05, cor_data$r, NA)

sig_cor_long <- sig_cor %>% 
  data.frame() %>% 
  mutate(var1 = rownames(sig_cor)) %>% 
  gather(var2, value = r, -var1) %>% 
  drop_na(r) %>% 
  filter(r != 1)

这将ab和bc对确定为显着相关,因此我想对它们进行绘图。 如何从sig_cor_long中选择配对变量以通过ggplot从数据进行绘制的过程自动化? 我想为每个相关对创建的示例图将是:

ggplot(data, aes(a, b)) +
geom_smooth(method = 'lm')+
geom_point(shape = 21, color = 'darkblue', fill = 'white')

我想有一个函数输入到ggplot中,以告诉它绘制在sig_cor_long中标识的所有var1和var2对,这些原始数据在数据中。

好的,这是一种绘制方式,例如,所有具有显着相关性的绘图(在列表中,因此您可以对它们进行任何处理)

do.call(gridExtra::grid.arrange,
  ifelse(cor_data$p <0.05, cor_data$r, NA) %>%
    as.data.frame() %>%
    rownames_to_column() %>%
    gather(pair, val, -rowname) %>%
    drop_na() %>%
    filter(val != 1) %$%
    map2(rowname, pair, ~ggplot() + geom_smooth(method = "lm", aes(data[, .x], data[, .y])) + geom_point(aes(data[, .x], data[, .y])))
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM