【发布时间】:2021-12-12 18:03:47
【问题描述】:
箱线图大数据集(一次运行)
如何从一次抛出 280 个箱线图的代码传递到分隔每个变量并获得 280 个不同图的代码?
我发现的所有示例都包含少于 5 个变量, 使输出易于处理和识别……但是如何绘制超过 15 个变量?
我有一个大数据集(长格式 = 77560 个观察值,3 个变量;宽格式 = 280 个观察值,278 个变量)。该数据集包含来自 2 组患者和对照组的临床数据和测量值。
我的目标是从所有 280 个变量中对患者进行箱线图控制,并在不同的图中(不同的结果窗口)获得结果。
我想要一个代码,而不是这样做 280 次。
我怎样才能在更合理的输出中获得 280 个箱线图?
谢谢!
我使用的代码是这样的:
ggplot(long_df, aes(x=variable, y=value)) + geom_boxplot(aes(fill=group))
15 列中的 4 行如下所示:
df <- structure(list(group = c("control", "control", "patient",
"patient"), `Scale factor` = c(0.80696, 0.8002, 0.73286, 0.83765
), SNR = c(19.1027, 17.8508, 19.2552, 15.002), mSNR = c(20.2588,
18.9367, 20.1892, 16.1166), `ICV cm3` = c(1461.351, 1426.9219,
1350.5229, 1565.7709), `Cerebellum total cm3` = c(128.4798, 125.1114,
124.4808, 143.9827), `Cerebellum right cm3` = c(64.2286, 62.7666,
62.0081, 71.7966), `Cerebellum left cm3` = c(64.2512, 62.3449,
62.4727, 72.1861), `Cerebellum total %` = c(8.7919, 8.7679, 9.2172,
9.1956), `Cerebellum right %` = c(4.3952, 4.3987, 4.5914, 4.5854
), `Cerebellum left %` = c(4.3967, 4.3692, 4.6258, 4.6103), `Cerebellum asymmetry` = c(-0.035173,
0.67412, -0.74651, -0.54105), `I-II total cm3` = c(0.11782, 0.10723,
0.090875, 0.13486), `I-II right cm3` = c(0.058101, 0.056814,
0.043239, 0.069525), `I-II left cm3` = c(0.059715, 0.050412,
0.047636, 0.065337)), row.names = c(NA, -4L), class = c("tbl_df",
"tbl", "data.frame"))
从宽到长:
long_df <- melt(df, id.var="group")
【问题讨论】:
-
你认为你能在 280 个箱线图中看到一些东西吗?
-
没有。就是这样。我不想在一个窗口中显示 280 个箱线图,我需要将它们放在单独的窗口中。这就是我到目前为止的结果,这正是我想要改变的......我会在我的问题中更清楚地说明这一点。感谢您提出这个问题
-
好的。您将在这篇文章中找到解决方案:stackoverflow.com/questions/69738268/…