微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过根据两个定性因素组合相似的行来减少数据帧

如何解决通过根据两个定性因素组合相似的行来减少数据帧

我有一个如下数据框:

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 举报,一经查实,本站将立刻删除。