删除路径中的第一个NA

时间:2018-02-09 09:58:34

标签: r

我使用许多不同的变量在R上创建了一个路径。但是有些变量有NA,并且已添加到路径中。

1 > 2 > NA > NA > 0
1 > 3 > 2 > NA > 0
1 > NA > NA > NA > 0
1 > 3 > 4 > NA > 0
2 > 3 > 1 > NA > 0
6 > 2 > NA > NA > 1

我想在第一个NA出现时停止路径。我不关心NA值之后的其他数字。我希望这条路看起来像这样。

1 > 2
1 > 3 > 2
1
1 > 3 > 4
2 > 3 > 1
6 > 2

我曾尝试使用strsplit,代码如下,但我不知道如何做到这一点并收到错误。

for(row in 1:nrow(data)){
data$path[row] = strsplit(channel$path[row], ">")[[1]][1]
}

1 个答案:

答案 0 :(得分:0)

" > "拆分后,转换为numeric以更改字符" NA"到NA,然后,paste元素直到第一个NA元素

sapply(strsplit(df1$v1, " > "), function(x) {
           x1 <- as.numeric(x)
           paste(x1[seq(which(is.na(x1))[1]-1)], collapse=" > ")})
#[1] "1 > 2"     "1 > 3 > 2" "1"         "1 > 3 > 4" "2 > 3 > 1" "6 > 2"