我有n
- 尺寸向量w1
,w2
,w3
。我需要从相应元素的每列中删除NA
。
对于6
- 大小的向量:
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
的情况下以矢量形式重写代码吗?
答案 0 :(得分:2)
如果start
s中的每个对应元素只有一个非NA元素,我们可以使用pmax/pmin
vector