如何在 R 中添加具有一个值和所有其他 NA 值的新行

Jub*_*Jub 3 r dataframe na

我有一个样本 ID 向量,需要位于我的数据框中(否则我应用于它们的函数将不起作用),但缺失(称为missing)。

对于 中的每个元素missing,我想在数据帧的末尾添加一行,其中包含 ID,但该行中的其余数据(对于所有其他列)都是 NA。

根据我看到的其他一些仅讨论添加空行的 Stack Overflow 帖子,我目前正在尝试的内容如下:

for (element in missing) {
    df[nrow(df)+1,] <- NA
    df[nrow(df),1] <- element
}
Run Code Online (Sandbox Code Playgroud)

有没有更简单、更快的方法来做到这一点,因为即使缺少 1000 个元素也需要一些时间,而我以后可能需要处理更多元素。

G. *_*eck 5

1)使用内置anscombe数据框,插入两行,将 -1 和 -3 放入 x1 列中。

library(tibble)
new <- c(-1, -3)
add_row(anscombe, x1 = new)
Run Code Online (Sandbox Code Playgroud)

给予:

   x1 x2 x3 x4    y1   y2    y3    y4
1  10 10 10  8  8.04 9.14  7.46  6.58
2   8  8  8  8  6.95 8.14  6.77  5.76
3  13 13 13  8  7.58 8.74 12.74  7.71
4   9  9  9  8  8.81 8.77  7.11  8.84
5  11 11 11  8  8.33 9.26  7.81  8.47
6  14 14 14  8  9.96 8.10  8.84  7.04
7   6  6  6  8  7.24 6.13  6.08  5.25
8   4  4  4 19  4.26 3.10  5.39 12.50
9  12 12 12  8 10.84 9.13  8.15  5.56
10  7  7  7  8  4.82 7.26  6.42  7.91
11  5  5  5  8  5.68 4.74  5.73  6.89
12 -1 NA NA NA    NA   NA    NA    NA
13 -3 NA NA NA    NA   NA    NA    NA
Run Code Online (Sandbox Code Playgroud)

2)这是一个基本解决方案。new来自 (1)

(如果覆盖anscombe可以,但通常这会使调试变得更加困难,则省略第一行并替换anscombe2anscombe。)

anscombe2 <- anscombe
anscombe2[nrow(anscombe2) + seq_along(new), "x1"] <- new
Run Code Online (Sandbox Code Playgroud)

3)使用 tibble 包(或导入它的 dplyr),我们可以使用 rows_insert。 new来自(1)。

library(dplyr)
rows_insert(anscombe, tibble(x1 = new))
Run Code Online (Sandbox Code Playgroud)