如何解决通过根据两个定性因素组合相似的行来减少数据帧
observations<- data.frame(X=c("00KS089001","00KS089001","00KS089002","00KS089003","00KS105001","00KS177011","00P0006","00P006","00P006"),hzdept = c(0,20,15,13,16,6,29),hzdepb = c(20,30,29,30),Y=c("Red","White","Red","Green","Blue","Black","White"),Z = c(0.67,0.33,0.5,0.43,0.57,0.67,0.53,0.47,0.2,0.23,0.04))
我希望能够减少这一点,以便无论何时X和Y对于两行都是相同的,观测值即合并起来。
data.frame(X=c("00KS089001",6),1.00,0.20,0.80))
关于如何最好地做到这一点的任何建议?
解决方法
编辑:好的,现在我从上面的评论中看到应该如何将function myFunction() {
const ss = SpreadsheetApp.getActive();
const main_sheet = 'Main';
const msh = ss.getSheetByName(main_sheet);
const sheets = ss.getSheets();
const data = msh.getRange('A2:D'+msh.getLastRow()).getValues();
sheets.forEach(sh=>{
if(sh.getName()!=main_sheet){
let temp_ar = data.filter(r=>r[1]==sh.getName());
if (temp_ar.length>0){
sh.getRange(sh.getLastRow()+1,1,temp_ar.length,temp_ar[0].length).setValues(temp_ar);
}}});
}
和hzdept
组合在一起:
hzdepb
,
使用dplyr
以下是将两列分组并使用数据框中的最小值,最大值和其他列求和的方法:
library(magrittr) # For the pipe: %>%
observations %>%
dplyr::group_by(X,Y) %>%
dplyr::summarise(hzdept = min(hzdept),hzdepb = max(hzdepb),Z = sum(Z),.groups = 'drop')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。