小编Dek*_*ike的帖子

R-考虑到某些被调用的数据帧可能不存在,如何合并/绑定多个数据帧?

我必须在 R 中的迭代过程中绑定/合并数据帧。有时,某些数据帧可能不存在,原因我不会在此处解释。我想知道如何绑定数据帧,即使调用一些不存在的数据帧也是如此。作为一个例子,我有这些数据框:

df.R_H <- data.frame(A=c(0,4,5,6,7),
                  B=c(3,9,4,5,8),
                  C=c(1,2,4,2,6))

df.B_C <- data.frame(A=c(0,4,5,6,7),
                  B=c(3,9,4,5,8),
                  C=c(1,2,4,2,6))

df.G_H <- data.frame(A=c(0,4,5,6,7),
                  B=c(3,9,4,5,8),
                  C=c(1,2,4,2,6))
Run Code Online (Sandbox Code Playgroud)

但是,在我的代码中我有这个:

df5 <- rbind(df.R_H,df.B_C,df.G_H,df.R_C)
df5
Run Code Online (Sandbox Code Playgroud)

df.R_C尽管数据框不存在,但如何绑定数据框?我无法单独检查哪些数据帧存在或不存在,因为我有数百种这样的情况,并且即使某些数据帧不存在,我也想自动执行此操作。

merge r rbind

5
推荐指数
1
解决办法
251
查看次数

如何使用 ggpubr 包中的“ggarrange”排列多个绘图后添加图例?

我必须使用以下方法创建不同图的排列ggarrange

arrange <- ggarrange(P1,P2,P3,P4,P5, ncol=3,nrow = 2,common.legend = F, align = c("hv"))
arrange
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我想添加一个常见的图例,所以我这样做了:

arrange <- ggarrange(P1,P2,P3,P4,P5, ncol=3,nrow = 2,common.legend = T, align = c("hv"),legend="top")
arrange
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但是,我希望图例位于图表的右下部分,在“空白”空间中。

你知道我该怎么做吗?

r ggplot2

4
推荐指数
1
解决办法
5815
查看次数

为什么我没有使用 ggplot2 获得两个图例?

我正在绘制一些数据点上不同模型的预测线。我想得到一个图例,指示每个点颜色属于哪个个体,另一个图例指示每个线颜色属于哪个模型。下面我分享一个可重复性的假例子:

set.seed(123)
df <- data.frame(Height =rnorm(500, mean=175, sd=15),
                 Weight =rnorm(500, mean=70, sd=20),
                 ID = rep(c("A","B","C","D"), (500/4)))

mod1 <- lmer(Height ~ Weight + (1|ID), df)
mod2 <- lmer(Height ~ poly(Weight,2) + (1|ID), df)

y.mod1 <- predict(mod1, data.frame(Weight=df$Weight),re.form=NA) # Prediction of y according to model 1
y.mod2 <- predict(mod2, data.frame(Weight=df$Weight),re.form=NA) # Prediction of y according to model 2

df <- cbind(df, y.mod1,y.mod2)
df <- as.data.frame(df)

head(df)

    Height   Weight ID   y.mod1   y.mod2
1 166.5929 57.96214  A 175.9819 175.4918
2 171.5473 50.12603  B 176.2844 …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

4
推荐指数
2
解决办法
74
查看次数

如何计算从几个连续列中选择最大范围值的变量

我有一个数据框df,可以汇总几个月中不同深度(5米T5,15米T15,25米T25和35米T35)的每小时水温。举个例子:

df<- data.frame(DateTime=c("2018-08-09 08:00:00","2018-08-09 09:00:00","2018-08-09 10:00:00","2018-08-09 11:00:00","2018-08-09 12:00:00","2018-08-09 13:00:00"),
                T5=c(14.5,18.4,21.3,27.8,16.5,21.5),
                T15=c(13.8,16.3,16.2,17.8,19.3,20.1),
                T25=c(16.0,17.2,18.3,15.9,21.4,17.3),
                T35=c(16.1,15.7,16.2,15.6,17.0,16.3))

df$DateTime<- as.POSIXct(df$DateTime, formtat="%Y-%m-%d %H:%M:%S",tz="UTC")

df

             DateTime   T5  T15  T25  T35
1 2018-08-09 08:00:00 14.5 13.8 16.0 16.1
2 2018-08-09 09:00:00 18.4 16.3 17.2 15.7
3 2018-08-09 10:00:00 21.3 16.2 18.3 16.2
4 2018-08-09 11:00:00 27.8 17.8 15.9 15.6
5 2018-08-09 12:00:00 16.5 19.3 21.4 17.0
6 2018-08-09 13:00:00 21.5 20.1 17.3 16.3
Run Code Online (Sandbox Code Playgroud)

我要计算的是一些与深度之间的温度差有关的变量。我想计算变量“最大水温在色谱柱中的变化”(MWTCC),该变量反映整个水柱之间CONSECUTIVE色谱柱之间的最大水温变化。稍后,我还要计算变量“ 5至15米WTC10 …

r dplyr data.table

3
推荐指数
1
解决办法
72
查看次数

如何在R中以不同的方式从向量复制字符串?

我有这个向量:

Photoperiod <- c("Day","Sunset","Night","Sunrise")
Run Code Online (Sandbox Code Playgroud)

我想创建一个向量,其中Day重复 12 次、Sunset2 次、Night8 次和Sunrise两次,直到得到长度等于 168 的向量。

我怎么能这样做?

r repeat replicate

3
推荐指数
1
解决办法
60
查看次数

如何通过函数data.table指示用于计算不同统计量的`n`

数据框df1总结了不同人的一小时时间间隔。

df1<- data.frame(Round_datetime=c("2016-08-23 11:00:00","2016-08-23 11:00:00","2016-08-23 12:00:00","2016-08-23 12:00:00"),
                 Person= c("Sophie","Anna","Sophie","Anna"))
df1$Round_datetime<-as.POSIXct(df1$Round_datetime, format="%Y-%m-%d %H",tz="UTC")

df1

       Round_datetime Person
1 2016-08-23 11:00:00 Sophie
2 2016-08-23 11:00:00   Anna
3 2016-08-23 12:00:00 Sophie
4 2016-08-23 12:00:00   Anna

Run Code Online (Sandbox Code Playgroud)

数据框df2会随时间提供有关这些人员的一些信息。

df2<- data.frame(DateTime=c("2016-08-23 10:29:08.324","2016-08-23 10:39:36.326","2016-08-23 10:44:08.724","2016-08-23 10:59:46.324","2016-08-23 11:19:22.324","2016-08-23 11:29:53.324","2016-08-23 11:34:14.324","2016-08-23 11:47:49.324","2016-08-23 11:54:58.324","2016-08-23 11:59:13.324","2016-08-23 12:12:34.324","2016-08-23 12:23:43.324","2016-08-23 12:32:14.324","2016-08-23 12:29:28.324"),
                 Person=c("Sophie","Anna","Sophie","Anna","Sophie","Anna","Sophie","Anna","Sophie","Anna","Sophie","Anna","Sophie","Anna"),
                 Value=c(10,15,5,10,20,15,10,5,25,15,10,5,10,20))
df2$DateTime<-as.POSIXct(df2$DateTime, format="%Y-%m-%d %H:%M:%OS",tz="UTC")

df2

                  DateTime Person Value
1  2016-08-23 10:29:08.323 Sophie    10
2  2016-08-23 10:39:36.325   Anna    15
3  2016-08-23 10:44:08.723 Sophie     5
4  2016-08-23 10:59:46.323   Anna …
Run Code Online (Sandbox Code Playgroud)

r data.table

1
推荐指数
1
解决办法
36
查看次数

标签 统计

r ×6

data.table ×2

ggplot2 ×2

dplyr ×1

merge ×1

rbind ×1

repeat ×1

replicate ×1