在路径中删除第一个NA



我使用许多不同的变量在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]
}

通过 " > "拆分后,转换为 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"    

最新更新