根据r中单独行中的值复制行组的值

时间:2018-02-15 14:59:09

标签: r

我正在寻找一种有效的方法来操作大量数据,以便重复同一组中同一列中所有行中组的最后一行的值(由V1中的值给出)。

输入:

id V1 V2 V3
1  A  10 0
2  A  13 0
3  A  20 0
4  A  0  10
5  B  25 0
6  B  14 0
7  B  1  0
8  B  0  6

输出:

id V1 V2 V3
1  A  10 10
2  A  13 10
3  A  20 10
4  A  0  10
5  B  25 6
6  B  14 6
7  B  1  6
8  B  0  6

2 个答案:

答案 0 :(得分:2)

这应该适用于dplyr。

假设您的数据存储在名为df

的数据框中

df <- df %>% group_by(V1) %>% mutate(V3 = last(V3))

答案 1 :(得分:0)

您可以使用group_by包中的mutatelast以及dplyr


library(tibble)
library(dplyr)

your_data <- tribble(~id,  ~V1, ~V2,  ~V3,
1 , "A" , 10, 0,
2 , "A" , 13, 0,
3 , "A" , 20, 0,
4 , "A" , 0 , 10,
5 , "B" , 25, 0,
6 , "B" , 14, 0,
7 , "B" , 1 , 0,
8 , "B" , 0 , 6)


your_data %>%  
  group_by(V1) %>% 
  mutate(V3 = last(V3))
#> # A tibble: 8 x 4
#> # Groups: V1 [2]
#>      id V1       V2    V3
#>   <dbl> <chr> <dbl> <dbl>
#> 1  1.00 A     10.0  10.0 
#> 2  2.00 A     13.0  10.0 
#> 3  3.00 A     20.0  10.0 
#> 4  4.00 A      0    10.0 
#> 5  5.00 B     25.0   6.00
#> 6  6.00 B     14.0   6.00
#> 7  7.00 B      1.00  6.00
#> 8  8.00 B      0     6.00