【发布时间】:2017-03-25 01:56:09
【问题描述】:
我有n-size 向量w1、w2、w3。我需要从对应元素的每一列中删除NA。
对于6-size 向量:
w1 <- c(NA, NA, NA, NA, 2, 1)
w2 <- c(NA, NA, 4, 3, NA, NA)
w3 <- c(6, 5, NA, NA, NA, NA)
预期结果是(6, 5, 4, 3, 2, 1)
我把向量保存在data.frame:
df <- data.frame(w1, w2, w3)
remove <- c("NA")
然后尝试逐行删除NA
w <- c()
k <- nrow(df)
for(i in 1:k)
{
w <- c(w, df[i,] [! df[i,] %in% remove])
}
df <- data.frame(df, w=unlist(w))
我的结果是 df$w:
df
w1 w2 w3 w
1 NA NA 6 6
2 NA NA 5 5
3 NA 4 NA 4
4 NA 3 NA 3
5 2 NA NA 2
6 1 NA NA 1
问题。有人可以指导我如何在没有for-loop 的情况下以矢量形式重写代码吗?
【问题讨论】:
-
rowSums(df, na.rm=TRUE) -
使用
is.na。在此处查看示例statmethods.net/input/missingdata.html