小编Bea*_*ant的帖子

将一个数据帧的 NA 值强加到格式相同的第二个数据帧上

我有两个数据帧,格式相同,其中 DF1 中的 NA 值应施加到 DF2 上,而 DF2 中的所有其他值保持不变。

下面的示例,使用代码来重现两个 DF 和下面所需的结果 DF:

在此输入图像描述

structure(list(ID = c(100, 101, 102, 103), c1 = c(NA, NA, NA, 
"Y"), c2 = c("Y", NA, NA, "Y"), c3 = c("Y", "Y", "Y", NA), c4 = c(NA, 
NA, NA, NA), c5 = c(NA, NA, NA, NA)), class = "data.frame", row.names = c(NA, 
-4L))

structure(list(ID = c(100, 101, 102, 103), c1 = c(0, 0, 0, NA
), c2 = c(1, 0, 0, 0), c3 = c(0, 0, 0, …
Run Code Online (Sandbox Code Playgroud)

merge r dataframe na

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

基于包含值因子的列值的子数据框

我有一个数据框,其中包含一列,其中前一行和当前行之间存在时间差(以小时为单位)。这些行本身就是一个长序列。

我想要对数据帧进行子集化,以便时间差异是规则的 (16 小时),并删除不属于 16 小时“步骤”的行。然而,在计算中不应该仅仅跳过NA时间差(例如,时间差为8、8的行一起是16小时的步长,但具有8、NA、8的三行则不是)。相反,应从此 NA 开始重新计算 16 小时的时间差。

因此,如果一个或多个时间差为 4 或 8 小时,但加起来不能减少到 16 小时的单个步骤,则各个值也应变为 NA,请参见下文。

当第1-3行或1-4行之间形成16小时的步长时,应分别删除第2行或2-3行。

不幸的是,之前提供的答案似乎不适用于我的数据,输出中仅保留了“16h 步骤”的一小部分。我在下面提供了一个新示例,因为我的示例可能不具有代表性,以及给我的代码

输入:

test

ID      Datetime        diff_h
134_18  7/27/2018 0:00  NA
134_18  7/27/2018 19:00 19
134_18  7/28/2018 0:00  5
134_18  7/28/2018 8:00  8
134_18  7/28/2018 16:00 8
134_18  7/29/2018 0:00  8
134_18  7/29/2018 8:00  8
134_18  7/29/2018 12:00 4
134_18  7/30/2018 16:00 4
134_18  7/30/2018 20:00 4
134_18  7/30/2018 16:00 8
134_18  7/31/2018 0:00  8
134_18  7/31/2018 8:00  8
134_18  7/31/2018 …
Run Code Online (Sandbox Code Playgroud)

time r subset dataframe

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

标签 统计

dataframe ×2

r ×2

merge ×1

na ×1

subset ×1

time ×1