gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 15:56:39 25 4
gpt4 key购买 nike

假设我有以下数据框:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com