我设计了一项实验,了解自进食以来血清标志物随时间的变化情况。我有一个由72个观察和23个变量组成的数据框,称为BreakfastM。
有229个变量是血清标记,1个是时间点。观察结果是不同的样本
Iam寻找血清标志物(即胆固醇)如何随时间点变化的数据趋势。我已经创建了一个箱线图,它可以很好地显示特定血清标记物中与时间点相关的趋势
这是我使用的代码
boxplot((BreakfastM$Variable~BreakfastM$Timepoint))
是否可以通过在R中编写循环代码来快速测试数据帧中的所有变量?
答案 0 :(得分:2)
如果您只想绘制地图,使用tidyr
(和dplyr
)转换为长格式,然后使用ggplot2
进行绘图可能是最好的起点。
如果您只有少量变量,则可以使用facet_wrap
按度量拆分箱图。因为您没有提供可重复的数据,所以我使用的是mtcars
数据,而不是" gear"为您的时间点,并限制只是要比较的数值。 select
正在挑选我想要使用的列,然后gather
将它们转换为长格式,然后转到ggplot
mtcars %>%
select(gear, mpg, disp:qsec) %>%
gather(Measure, Value, -gear) %>%
ggplot(aes(x = factor(gear)
, y = Value)) +
geom_boxplot() +
facet_wrap(~Measure
, scales = "free_y")
现在,有229个变量,这不是一个可读的情节。相反,您可能希望查看来自facet_multiple
的{{1}},它会在多个页面上传播分面。在这里,我用它来放置一个"页面"您可以在查看器中查看,也可以根据需要进行保存。
首先,保存基础图(没有刻面):
ggplus
然后,将其用作basePlot <-
mtcars %>%
select(gear, mpg, disp:qsec) %>%
gather(Measure, Value, -gear) %>%
ggplot(aes(x = factor(gear)
, y = Value)) +
geom_boxplot()
的参数:
facet_multiple
将生成与上面相同的面板,但每页一个(更改facet_multiple(basePlot, "Measure"
, nrow = 1
, ncol = 1
, scales = "free_y")
和nrow
可以增加每页显示的构面数)。
答案 1 :(得分:1)
您还可以使用循环将多个绘图写入工作目录中的图像文件。让我们做一个10列矩阵表示10个测量变量,每个变量分为3个因子级别:
this.d( "facebookOAuthLogin() - starts" );
this.fbProvider.login().then(
( loginResponse: { status: string, authResponse: any, accessToken: string, expiresIn: string, session_key: string, sig: string, userID: string } ) =>
{
this.d( "facebookOAuthLogin() - fbProvider.login() succeeded" );
Config.config.sessionToken = loginResponse.authResponse.accessToken;
this.fbProvider.getCurrentUserProfile().then(
( profileData : { email: string, name: string } ) =>
{
this.d( "facebookOAuthLogin() - fbProvider.getCurrentUserProfile() succeeded" );
Config.config.user_email = profileData.email;
Config.config.user_name = profileData.name;
this.fbProvider.getUserPicture().then(
( pictureData : { data:{ is_silhouette: boolean, url: string, width: number, height: number } } ) =>
{
this.d( "facebookOAuthLogin() - fbProvider.getUserPicture() succeeded" );
// this.facebook_picture_url = pictureData.data.url;
// this.facebook_picture_is_silhouette = pictureData.data.is_silhouette;
if( pictureData.data.is_silhouette || pictureData.data.url == null )
{
this.d( "facebookOAuthLogin() - pictureData.data.url == null" );
Config.config.jpegBase64Data = null;
this.afterFacebookLogin();
}
else
{
this.d( "facebookOAuthLogin() - pictureData.data.url != null" );
ImageStore.readToData( pictureData.data.url ).then(
dataBase64 =>
{
this.d( "facebookOAuthLogin() - facebook picture read successfully" );
循环将每个箱图写入名为data <- matrix(rnorm(150), nrow=15)
grps <- factor(c(rep("group1", 5), rep("group2", 5), rep("group3", 5)))
,var_1.png
等的文件。这将在您的工作目录中放置10个var_2.png
。
png
文件非常小,您可以使用简单的图像查看器快速浏览它们。