gpt4 book ai didi

替换从 R 中特定列开始的数据框中的 NA

转载 作者:行者123 更新时间:2023-12-02 09:18:43 25 4
gpt4 key购买 nike

我正在学习 R,并且在尝试替换数据框中的 na 值(不包括过程中的前 2 列)时遇到问题。我这样做了:

# example data.frame 
v1<-c("a","b","c","d")
v2<-c(3,3,NA,NA)
v3<-c(1,NA,1,1)
v4<-c(1,NA,1,NA)
v5<-c(1,0,NA,NA)
df<-data.frame(v1,v2,v3,v4,v5)
df

#fal is a Matrix with only FALSE
fal <- data.frame(matrix(ncol = 2, nrow = nrow(df), FALSE))
fal

m <- cbind(fal,is.na(df[,3:5]))
df[m]<-0

所以我有一个 TRUE 矩阵,其中 na 必须被替换,我将其设置为 0。

df 看起来像这样:

   v1 v2 v3 v4 v5
1 a 3 1 1 1
2 b 3 NA NA 0
3 c NA 1 1 NA
4 d NA 1 NA NA

矩阵看起来像这样:

   X1    X2    v3    v4    v5
1 FALSE FALSE FALSE FALSE FALSE
2 FALSE FALSE TRUE TRUE FALSE
3 FALSE FALSE FALSE FALSE TRUE
4 FALSE FALSE FALSE TRUE TRUE

有人可以帮我吗?

最佳答案

m不是矩阵,而是数据框。

df[as.matrix(m)] <- 0
df

## v1 v2 v3 v4 v5
## 1 a 3 1 1 1
## 2 b 3 0 0 0
## 3 c NA 1 1 0
## 4 d NA 1 0 0

编辑:或替换 fal <- data.frame(matrix(ncol = 2, nrow = nrow(df), FALSE))fal <- matrix(ncol = 2, nrow = nrow(df), FALSE)

关于替换从 R 中特定列开始的数据框中的 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44540761/

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