我有这个4变量Pareto前端,我想要想象。这是数据集:https://www.dropbox.com/s/3onja9wtsow4rl9/filtered_pareto.csv?dl=0
> head(dat)
modu robust apl fiedl
1 0.3701243 35 2.151837 0.2932508
2 0.3067103 29 2.071020 0.2928233
3 0.3244840 26 2.124898 0.2646455
4 0.3396247 35 2.008980 0.3270429
5 0.2890496 29 2.010612 0.3110269
6 0.3528308 34 2.051429 0.3007537
这是我用来绘制所有变量组合的代码:
library(ggplot2)
dat <- read.csv("filtered_pareto.csv", check.names = FALSE)
dat$modu = -dat$modu
dat$robust = -dat$robust
res <- do.call(rbind, combn(1:4, 2, function(ii)
cbind(setNames(dat[,c(ii, setdiff(1:4, ii))], c("x", "y")),
var=paste(ii, collapse=".")), simplify=F))
ggplot(res, aes(x=x, y=y))+ geom_point(shape=4) + geom_smooth(method=lm) +
facet_wrap(~ var, scales="free")
转换后,数据如下所示:
> head(res)
x y NA NA var
1 0.3701243 35 2.151837 0.2932508 1.2
2 0.3067103 29 2.071020 0.2928233 1.2
3 0.3244840 26 2.124898 0.2646455 1.2
4 0.3396247 35 2.008980 0.3270429 1.2
5 0.2890496 29 2.010612 0.3110269 1.2
6 0.3528308 34 2.051429 0.3007537 1.2
它产生了这个:
在此可视化中,每个绘图都标有两个数字,对应于显示的变量。有没有办法使用变量的名称(CSV数据集的第一行)。例如:“Robust / Modu”而不是“1.2”或“APL / Modu”而不是“1.3”等?
谢谢!
答案 0 :(得分:1)
res <- do.call(rbind, combn(1:4, 2, function(ii)
cbind(setNames(dat[,c(ii, setdiff(1:4, ii))], c("x", "y")),
var=paste(names(dat)[ii], collapse="/")), simplify=F))