李家翔 2018-12-19
data <-
matrix(1:100,ncol = 20) %>%
as.data.frame()
data
## V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20
## 1 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96
## 2 2 7 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92 97
## 3 3 8 13 18 23 28 33 38 43 48 53 58 63 68 73 78 83 88 93 98
## 4 4 9 14 19 24 29 34 39 44 49 54 59 64 69 74 79 84 89 94 99
## 5 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100
data %>%
mutate(sum = pmap_dbl(.,sum)) %>%
select(sum,everything())
## sum V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19
## 1 970 1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91
## 2 990 2 7 12 17 22 27 32 37 42 47 52 57 62 67 72 77 82 87 92
## 3 1010 3 8 13 18 23 28 33 38 43 48 53 58 63 68 73 78 83 88 93
## 4 1030 4 9 14 19 24 29 34 39 44 49 54 59 64 69 74 79 84 89 94
## 5 1050 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95
## V20
## 1 96
## 2 97
## 3 98
## 4 99
## 5 100
也可以使用 rowSums
,但是这不是普遍的办法,pmap_dbl
可以继续计算其他统计值
data %>%
mutate(
sum = pmap_dbl(.,sum)
,sd = pmap_dbl(.,lift_vd(sd))
,var = pmap_dbl(.,lift_vd(var))
,median = pmap_dbl(.,lift_vd(median))
) %>%
select(sum,sd,var,median,everything())
## sum sd var median V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14
## 1 970 29.5804 875 48.5 1 6 11 16 21 26 31 36 41 46 51 56 61 66
## 2 990 29.5804 875 49.5 2 7 12 17 22 27 32 37 42 47 52 57 62 67
## 3 1010 29.5804 875 50.5 3 8 13 18 23 28 33 38 43 48 53 58 63 68
## 4 1030 29.5804 875 51.5 4 9 14 19 24 29 34 39 44 49 54 59 64 69
## 5 1050 29.5804 875 52.5 5 10 15 20 25 30 35 40 45 50 55 60 65 70
## V15 V16 V17 V18 V19 V20
## 1 71 76 81 86 91 96
## 2 72 77 82 87 92 97
## 3 73 78 83 88 93 98
## 4 74 79 84 89 94 99
## 5 75 80 85 90 95 100