r - 按标准在数据框中引入数据

标签 r dataframe data-binding

假设我有以下数据框:

df <- data.frame(A=c(0),
                 B=c(0), 
                 C=c(0), 
                 D=c(0),
                 E=c(0)) 

现在,我想在 df 中引入一些像这样的向量,在 df 中考虑但没有考虑的参数时引入 0向量中的缺失。

Ex1 <- data.frame(B=c(1), 
                  C=c(2), 
                  D=c(4))

Ex2 <- data.frame(A=c(1), 
                  E=c(6))

也就是说,结果应该是这样的:

A B C D E
0 0 0 0 0
0 1 2 4 0
1 0 0 0 6

最佳答案

我们可以使用 dplyr 中的 bind_rows,它会在丢失时自动填充 NA,然后替换 NA到 0 以后

library(dplyr)
library(tidyr)
bind_rows(df, Ex1, Ex2) %>%
    mutate(across(everything(), replace_na, 0))

-输出

  A B C D E
1 0 0 0 0 0
2 0 1 2 4 0
3 1 0 0 0 6

我们也可以在 base R 中使用行/列索引来执行此操作,即创建一个 0 值的 matrix,然后用行索引和列名填充每一行来自“Ex1”、“Ex2”数据

m1 <- matrix(0, nrow = 3, ncol = 5, dimnames = list(NULL, LETTERS[1:5]))
m1[2, names(Ex1)] <- as.matrix(Ex1)
m1[3, names(Ex2)] <- as.matrix(Ex2)
 m1
     A B C D E
[1,] 0 0 0 0 0
[2,] 0 1 2 4 0
[3,] 1 0 0 0 6

关于r - 按标准在数据框中引入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69228491/

相关文章:

r - 将 R 数据帧插入 SQL (RODBC) - 找不到错误表

r - 使用管道语法处理模型列表

python - 将 C 缓冲区的内容复制到 numpy 数组

javascript - Uncaught ReferenceError : Unable to parse bindings

r - 如何改进此代码以获得成对?

r - 如何在 prcomp 中反转 PCA 以获取原始数据

r - 根据R中的特定行值将数据帧拆分为多个数据帧

python - 如何规范化包含大量不同集合的深层嵌套 JSON 结果?

r - 在 mutate() 中找不到函数 "across"

c# - 绑定(bind)中的 WPF StringFormat 在代码隐藏中不起作用