r - 如何在 R 中添加具有一个值和所有其他 NA 值的新行
问题描述
我有一个样本 ID 向量,它们需要在我的数据框中(否则我应用到它们的函数不起作用)但缺少(称为missing
)。
对于 中的每个元素missing
,我想在数据框的末尾添加一行,其中包含 ID,但该行中的其余数据(对于所有其他列)都是 NA。
我目前正在尝试的,基于我看到的其他一些 Stack Overflow 帖子,这些帖子只谈论添加空行,如下所示:
for (element in missing) {
df[nrow(df)+1,] <- NA
df[nrow(df),1] <- element
}
有没有更简单、更快捷的方法来做到这一点,因为即使 1000 个缺失的元素也需要一些时间,而我以后可能需要处理更多。
解决方案
1)使用内置anscombe
数据框,插入两行,将 -1 和 -3 放入 x1 列。
library(tibble)
new <- c(-1, -3)
add_row(anscombe, x1 = new)
给予:
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
2)这是一个基本解决方案。new
来自 (1)
(如果覆盖anscombe
是可以的,但通常这会使调试变得更加困难,然后省略第一行并替换anscombe2
为anscombe
.)
anscombe2 <- anscombe
anscombe2[nrow(anscombe2) + seq_along(new), "x1"] <- new
3)使用 tibble 包(或导入它的 dplyr)我们可以使用 rows_insert。 new
来自(1)。
library(dplyr)
rows_insert(anscombe, tibble(x1 = new))
推荐阅读
- java - 只允许在 tableview 上选择一个复选框
- javascript - 将html标签插入替换功能
- c# - 无法启动进程错误代码 502 错误网关错误 dotnet.exe vs 2017
- ssl - 如何使用来自工作节点的证书以用户身份运行远程代码
- json - 使用 jq 列出 JSON 文件的键值
- c# - 在不移动 UI 画布或 UI 按钮的情况下将 Unity GameObject 从场景移动到另一个
- c++ - 如何在 OpenCV 中将 4 维矩阵转换为 NHWC 格式
- php - 使用 JSON 值在数据库表上添加分区
- sql - 如何在没有任何唯一标识符的情况下从查询中删除重复行
- sql - 无法从命名空间读取 xml 节点