gpt4 book ai didi

r - 如何替换数据帧行中的 NA,其中行不是全部 NA

转载 作者:行者123 更新时间:2023-12-05 00:10:31 28 4
gpt4 key购买 nike

我有如下所示的数据框:

df <- data.frame(matrix(c(1,351,NA,1,0,2,585,0,1,1,3,321,NA,0,1,4,964,NA,NA,NA,5,556,0,1,NA), ncol = 5, byrow = TRUE))
colnames(df) <- c('id','value','v1','v2','v3')

现在我想替换子集中的所有 NA c('v1', 'v2', 'v3')对于并非全部为 NA 的所有行,都使用 0(零)。

所以我想要这个:
R> df
id value v1 v2 v3
1 1 351 NA 1 0
2 2 585 0 1 1
3 3 321 NA 0 1
4 4 964 NA NA NA
5 5 556 0 1 NA

像这样结束:
R> df
id value v1 v2 v3
1 1 351 0 1 0
2 2 585 0 1 1
3 3 321 0 0 1
4 4 964 NA NA NA
5 5 556 0 1 0

请注意 df[4, ]仍然有 NA 的 c('v1', 'v2', 'v3') .

最佳答案

这是一个具有良好旧循环的解决方案:

for (r in 1:nrow(df))
{
# check that not the all row is na but that there are some na
if(!all(is.na(df[r,3:5])) && sum(is.na(df[r,3:5]>0)))
{
df[r,which(is.na(df[r,3:5]))+2]=0
}
}

关于r - 如何替换数据帧行中的 NA,其中行不是全部 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57605968/

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