R语言 是否有办法补充数据框中缺失的数字?[副本]

niknxzdl  于 2023-05-20  发布在  其他
关注(0)|答案(3)|浏览(84)

此问题已在此处有答案

Complete dataframe with missing combinations of values(2个答案)
3年前关闭。
我对R很陌生,所以如果我问的问题有点琐碎,请原谅我。因此,我从图像分析程序中获取了一个包含类似以下内容的csv文件:

FRAME      OBJECT_IS_IN_TARGET_AREA
1          0
2          1
5          1
6          0
7          0
...        ...
241        1

正如您所看到的,第3帧和第4帧没有行,并且在第241帧之前可能会缺少更多行。现在,有没有一种方法可以用缺失的行补充 Dataframe ,以接收从1到241的连续数字序列,并为OBJECT_IS_IN_TARGET_AREA分配每个补充行N/A? Dataframe 最终应该看起来像这样:

FRAME      OBJECT_IS_IN_TARGET_AREA
1          0
2          1
3          N/A
4          N/A
5          1
6          0
7          0
...        ...
241        1

遗憾的是,不可能直接从图像分析程序中获取这些值,因此我必须手动添加它们。因为我有很多这样的序列,这将是非常潮的工作。所以我选择了R。希望你能帮我。
太好了谢谢,
E.葡萄

pw136qt2

pw136qt21#

您可以使用tidyr库中的complete。假设您的数据框名称为df

library(tidyr)
df %>% complete(FRAME=c(1:241)) -> df

应该做预期的工作。

wn9m85ua

wn9m85ua2#

我想你可以用baseR来实现:

Frame <- seq(241)
df <- data.frame(Frame=Frame)
df$OBJECT_IS_IN_TARGET_AREA <- ifelse(df$Frame %in% yourCSV$Frame, yourCSV$OBJECT_IS_IN_TARGET_AREA, NA)

现在df将是您的补充 Dataframe ,NA用于不在Frame中的对象,OBJECT_IS_IN_TARGET_AREA的值用于csv Frame中的值。
yourCSVdataframe样品

yourCSV <- data.frame(Frame=c(1,2,3,10,241), OBJECT_IS_IN_TARGET_AREA=c(1,2,3,4,5))
06odsfpq

06odsfpq3#

碱R溶液:

df <- merge(data.frame(FRAME = c(1:nrow(df))), df, by = "FRAME", all.x = TRUE)

相关问题