問題

私はいくつかのNoData値を持つ数値ベクトルを持っています。 NoDataをブレークポイントとして使用してベクトルに分割するにはどうすればよいですか?

データ例:

 set.seed(1)    
a <- as.integer(runif(30, 0, 10))
a[1] <- NaN
a[10] <- NaN

    > a
 [1] NaN   3   5   9   2   8   9   6   6 NaN   2   1   6   3   7   4   7   9   3   7   9   2   6   1   2   3   0   3   8   3
 

したがって、出力は連続ベクトルでデータをグループ化します。

 [1] 3 5 9 2 8 9 6 6

[1] 2 1 6 3 7 4 7 9 3 7 9 2 6 1 2 3 0 3 8 3
 

  ベストアンサー

私たちはsplitを使うことができます

 split(a, cumsum(is.na(a)))
 

しかし、すべてのリストの最初の要素は、NAで削除できるsapply

 sapply(split(a, cumsum(is.na(a))), function(x) x[!is.na(x)])
 

  同じタグがついた質問を見る

r