如果其中一个变量缺少数据,则将行中的所有值替换为0

JBR*_*BRA 1 r write.table

正如标题所述,我试图将给定行中的所有值替换为0,如果任何变量具有NA,则使用write.table输出.例如:

x  y  z
2  3  5
4  NA 1
3  2  1
Run Code Online (Sandbox Code Playgroud)

x  y  z
2  3  5
0  0  0
3  2  1
Run Code Online (Sandbox Code Playgroud)

目前,我的代码如下所示

myvars <- c("x", "y", "z")
newdata <- mydata[myvars]
write.table(newdata, "data.txt", col.names=FALSE, row.names=FALSE)
Run Code Online (Sandbox Code Playgroud)

the*_*ail 10

complete.cases 这里似乎合适:

dat[!complete.cases(dat),] <- 0
dat
#  x y z
#1 2 3 5
#2 0 0 0
#3 3 2 1
Run Code Online (Sandbox Code Playgroud)


Shi*_*iva 5

虽然@thelatemail的答案真的很酷,

学习一个技巧也不会有害.

这是我的解决方案:

dat[rowSums(is.na(dat))>0,]<- 0
dat
#  v1 v2 v3
#1 2  3  5
#2 0  0  0
#3 3  2  1
Run Code Online (Sandbox Code Playgroud)