![](/img/trans.png)
[英]In R, how do I select all variables from one data frame that are in another data frame?
[英]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.