gpt4 book ai didi

R:将数据框中的值替换为占位符的 NA

转载 作者:行者123 更新时间:2023-12-04 10:30:53 25 4
gpt4 key购买 nike

假设第一个数据框中存在一个值,我想用另一个数据框中的值替换一个数据框中的值。

第一个数据框由 1 或 0 的值组成,NA 是占位符。

a <- structure(list(A.1 = c(1L, 0L, NA, 1L, 1L, 0L), A.2 = c(1L, 1L, 
1L, NA, 1L, NA), A.3 = c(0L, NA, NA, 0L, NA, NA), A.4 = c(NA,
1L, 1L, NA, 0L, NA), A.5 = c(NA, NA, 1L, NA, NA, NA), A.6 = c(NA,
NA, 1L, NA, NA, 1L)), .Names = c("A.1", "A.2", "A.3", "A.4",
"A.5", "A.6"), class = "data.frame", row.names = c(NA, -6L))

第二个数据帧包含的值应替换第一个数据帧中 NA 位置的 1 或 0

r <- structure(list(R.1 = c(45L, 33L, 44L, 24L, 32L, 22L), R.2 = c(33L, 
99L, 44L, 25L, 25L, 33L), R.3 = c(22L, 77L, 22L, NA, 26L, NA),
R.4 = c(NA, NA, 32L, NA, NA, NA)), .Names = c("R.1", "R.2",
"R.3", "R.4"), class = "data.frame", row.names = c(NA, -6L))

目标是这样的:

d <- structure(list(D.1 = c(45L, 33L, NA, 24L, 32L, 22L), D.2 = c(33L, 
99L, 44L, NA, 25L, NA), D.3 = c(22L, NA, NA, 25L, NA, NA), D.4 = c(NA,
77L, 44L, NA, 26L, NA), D.5 = c(NA, NA, 22L, NA, NA, NA), D.6 = c(NA,
NA, 32L, NA, NA, 33L)), .Names = c("D.1", "D.2", "D.3", "D.4",
"D.5", "D.6"), class = "data.frame", row.names = c(NA, -6L))

欢迎提出任何建议。

最佳答案

d <- t(a)
d[!is.na(d)] <- t(r)[!is.na(t(r))]
t(d)
A.1 A.2 A.3 A.4 A.5 A.6
[1,] 45 33 22 NA NA NA
[2,] 33 99 NA 77 NA NA
[3,] NA 44 NA 44 22 32
[4,] 24 NA 25 NA NA NA
[5,] 32 25 NA 26 NA NA
[6,] 22 NA NA NA NA 33

另外,请注意 t() 返回一个矩阵而不是 data.frame

关于R:将数据框中的值替换为占位符的 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11659035/

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