0

まだパッケージを手に入れようとしていtidyrます。次のような冗長行を含むデータセットがある場合:

require(dplyr)
require(tidyr)
data <-
      data.frame(
        v1 = c("ID1", NA, "ID2", NA),
        v2 = c("x", NA, "xx", NA),
        v3 = c(NA, "z", NA, "zz"),
        v4 = c(22, 22, 6, 6),
        v5 = c(5, 5, 9, 9)) %>%
      tbl_df()

> data
Source: local data frame [4 x 5]

   v1 v2 v3 v4 v5
1 ID1  x NA 22  5
2  NA NA  z 22  5
3 ID2 xx NA  6  9
4  NA NA zz  6  9

id 変数v1-v3は多くの NA を持つ冗長な行に分割されているため (したがって、2 つの測定値も繰り返されます)、次のようなものを取得したいと考えています。

    v1  v2  v3  v4  v5
1   ID1 x   z   22  5
2   ID2 xx  zz  6   9

を使用してこれを取得する一般的な方法は何でしょうtidyrか? を使用して実行できると思いますgather()が、どうすればよいですか?

4

2 に答える 2

2

あなたもするかもしれません

library(dplyr)
data %>% 
     mutate(v3=v3[!is.na(v3)][cumsum(is.na(v3))]) %>%
     na.omit()
#    v1 v2 v3 v4 v5
#1 ID1  x  z 22  5
#2 ID2 xx zz  6  9

または示されたデータに基づいて

 data %>% 
      mutate(v3=lead(as.character(v3))) %>% 
      na.omit()
于 2015-03-19T03:15:19.027 に答える