如何根據r中的不同值組合行?

我想對某些行的值求和。例如,雖然ID是相同的,但當字母是a和b時,我們將對值求和。

  ID <- c(1,1,1,8,8,8,2,2,2,5,5,5,7,7,7)
  letter <- c("a","b","c","a","b","c","a","b","c","a","b","c","a","b","c")
  value <- c(111,75,94,37,85,86,76,55,72,62,56,35,85,44,65)
  dataframe <- data.frame(ID,letter,value)

結果如下

   ID letter value
1   1      a   111
2   1      b    75
3   1      c    94
4   8      a    37
5   8      b    85
6   8      c    86
7   2      a    76
8   2      b    55
9   2      c    72
10  5      a    62
11  5      b    56
12  5      c    35
13  7      a    85
14  7      b    44
15  7      c    65
? 最佳回答:

有了dplyr你可以做到這一點

library(dplyr)

dataframe %>% 
  group_by(ID) %>% 
  mutate(sum=sum(ifelse(letter=="a"|letter=="b",value,NA),na.rm=T)) %>% 
  ungroup()
# A tibble: 15 × 4
      ID letter value   sum
   <dbl> <chr>  <dbl> <dbl>
 1     1 a        111   186
 2     1 b         75   186
 3     1 c         94   186
 4     8 a         37   122
 5     8 b         85   122
 6     8 c         86   122
 7     2 a         76   131
 8     2 b         55   131
 9     2 c         72   131
10     5 a         62   118
11     5 b         56   118
12     5 c         35   118
13     7 a         85   129
14     7 b         44   129
15     7 c         65   129

或者更緊湊

dataframe %>% 
  group_by(ID) %>% 
  summarise(sum=sum(ifelse(letter=="a"|letter=="b",value,NA),na.rm=T))
# A tibble: 5 × 2
     ID   sum
  <dbl> <dbl>
1     1   186
2     2   131
3     5   118
4     7   129
5     8   122
主站蜘蛛池模板: 亚洲电影唐人社一区二区| 2020天堂中文字幕一区在线观| 国产一区二区精品在线观看| 成人无码AV一区二区| 亚洲AV无码一区二区三区电影 | 日韩好片一区二区在线看| 久久国产精品免费一区| 国产精品亚洲一区二区无码| 91在线看片一区国产| 日本午夜精品一区二区三区电影| 精品在线一区二区三区| 成人中文字幕一区二区三区| 亚欧免费视频一区二区三区| 中文乱码精品一区二区三区| 日韩有码一区二区| 亚洲国产一区二区视频网站| 福利一区在线视频| 亚洲免费一区二区| 一区二区三区中文字幕| 国产成人精品一区二区三区| 一区二区三区在线播放视频| 午夜福利国产一区二区| 一区二区免费电影| 中文字幕一区二区三区乱码| 亚洲国产精品一区二区九九 | 在线播放偷拍一区精品| 国产精品视频分类一区| 亚洲精品日韩一区二区小说| 亚州AV综合色区无码一区| 亚洲.国产.欧美一区二区三区| 亚洲日韩AV一区二区三区四区 | 国偷自产视频一区二区久| 午夜视频一区二区| 国产激情一区二区三区成人91| 国产精品一区二区av不卡| 日韩制服国产精品一区| 色噜噜狠狠一区二区三区果冻 | 久久精品国产免费一区| 色偷偷一区二区无码视频| 午夜一区二区在线观看| 国产一区二区三区在线观看免费 |