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

时间:2015-07-01 02:03:12

标签: r write.table

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

x  y  z
2  3  5
4  NA 1
3  2  1

x  y  z
2  3  5
0  0  0
3  2  1

目前我的代码如下所示

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

2 个答案:

答案 0 :(得分:10)

complete.cases似乎合适:

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

答案 1 :(得分: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