【Tidyverse優(yōu)雅編程】Excel每n行增加1個匯總行

問題來自 tidy-R 群:
Excel數(shù)據(jù),想每隔 4 行,增加一個取最小的匯總行
適合用【分組+分組就地修改】,三行代碼就能搞定。
就不演示讀寫Excel了,直接用?iris
?數(shù)據(jù)集演示:

可見,第5行、第10行,即是增加的取min
匯總行。
【解釋說明】:
(1)先生成一列重復 4 次的序號,用來控制分組。rep()
中的1:n()
這樣寫有冗余,但不影響結(jié)果,向量長度是?length.out=n()
控制的;
(2)group_modify()
?是用在分組數(shù)據(jù)框上,分別對每組(子數(shù)據(jù)框)做就地修改:
其(第2個)參數(shù)是要用于每組的修改函數(shù):~ rbind(.x, apply(.x, 2, min))
該函數(shù)將數(shù)據(jù)本身,再按行合并上一行:apply
?按列取min
?得到的行向量。
附錄
我主張的數(shù)據(jù)編程思維:

我的 R 語言新書:《R語言編程:基于tidyverse》
https://zhuanlan.zhihu.com/p/198185888
已經(jīng)進入出版流程,預計?22年夏?能與讀者見面。更多相關資源請參閱:
https://zhuanlan.zhihu.com/p/467134727
標簽: