需要使用新計算添加新字串
| 力量 | 價值 |
|---|---|
| 2 毫升 | 10 |
| 5毫升 | 05 |
| 2 毫升 | 30 |
| 5毫升 | 40 |
| 2 毫升 | 10 |
| 5毫升 | 25 |
| 2 毫升 | 30 |
| 5毫升 | 20 |
| 2 毫升 | 15 |
| 5毫升 | 10 |
現在我需要在強度列中添加新字串總計(2 毫升 5 毫升)
所以表格如下所示
| 力量 | 價值 |
|---|---|
| 2 毫升 | 10 |
| 5毫升 | 05 |
| 全部的 | 15 |
| 2 毫升 | 30 |
| 5毫升 | 40 |
| 全部的 | 70 |
| 2 毫升 | 10 |
| 5毫升 | 25 |
| 全部的 | 35 |
| 2 毫升 | 30 |
| 5毫升 | 20 |
| 全部的 | 50 |
| 2 毫升 | 15 |
| 5毫升 | 10 |
| 全部的 | 25 |
uj5u.com熱心網友回復:
您可以嘗試使用dplyr,讓您的資料df
library(dplyr)
df %>%
mutate(n = floor((1:n()-1)/2)) %>%
group_by(n) %>%
group_modify(., function(x, y) bind_rows(x, summarise(x, Strength = "Total",
Value = sum(Value)))) %>%
ungroup %>%
select(-n)
Strength Value
<chr> <int>
1 2 ml 10
2 5 ml 5
3 Total 15
4 2 ml 30
5 5 ml 40
6 Total 70
7 2 ml 10
8 5 ml 25
9 Total 35
10 2 ml 30
11 5 ml 20
12 Total 50
13 2 ml 15
14 5 ml 10
15 Total 25
uj5u.com熱心網友回復:
通過基礎 R 的標準拆分/應用/組合方法,
i1 <- split(df1, f = cumsum(seq(nrow(df1)) %% 2))
do.call(rbind,
lapply(i1, function(i){i[nrow(i) 1,] <- data.frame(Strength = 'Total',
Value = sum(i$Value));i}))
Strength Value
1.1 2ml 10
1.2 5ml 5
1.3 Total 15
2.3 2ml 30
2.4 5ml 40
2.1 Total 70
3.5 2ml 10
3.6 5ml 25
3.1 Total 35
4.7 2ml 30
4.8 5ml 20
4.1 Total 50
5.9 2ml 15
5.10 5ml 10
5.1 Total 25
uj5u.com熱心網友回復:
使用by
do.call(
rbind,
by(
df,
rep(1:(nrow(df)/2),each=2),
function(x){
rbind(
x,
data.frame(
"Strength"="Total",
"Value"=sum(x$Value)
)
)
}
)
)
Strength Value
1.1 2 ml 10
1.2 5 ml 5
1.3 Total 15
2.3 2 ml 30
2.4 5 ml 40
2.1 Total 70
3.5 2 ml 10
3.6 5 ml 25
3.1 Total 35
4.7 2 ml 30
4.8 5 ml 20
4.1 Total 50
5.9 2 ml 15
5.10 5 ml 10
5.1 Total 25
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/482643.html
標籤:r
上一篇:突出顯示ggplot2中的前3名
