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