Wich是在R?上按以下类型的数据帧按列值聚合行(总和)的最简单方法。

var search= {
    "id": "searchurl","title": "Search on dictionary","contexts": ["selection"]

};

chrome.contextMenus.create(search);

chrome.contextMenus.onClicked.addListener(function(clickData){
    "use strict";
    if (clickData.menuItemId === "searchurl" && clickData.selectionText){
        var urlkey = Document.getSelection().toString();
        alert(urlkey);

    }

});

当我尝试获得这种形状时,我尝试将索引和group_by保持聚合但没有成功:

index   type.x  type.y   col3   col4
1        a        m      20      25
2        b        m      30      28
3        a        m      15      555
3        a        n      20      555
4        a        m      666     10
4        b        m      666     20
vera__ 回答:Wich是在R?上按以下类型的数据帧按列值聚合行(总和)的最简单方法。

如果您使用的是base R,以下代码可能会有所帮助

r <- aggregate(df[4:5],by = df[1],function(v) sum(unique(v)))

给出

> r
  index col3 col4
1     1   20   25
2     2   30   28
3     3   35  555
4     4  666   30
,

如果它们 相似 ,否则我假设您想要第一个元素,否则sum

library(dplyr)
df %>% 
   group_by(index) %>% 
   #n_distinct = length(unique)
   #Or using @Thomas's idea list(~sum(unique(.),na.rm = TRUE))
   summarise_at(vars(col3,col4),list(~if_else(n_distinct(.)==1,.[1],sum(.,na.rm=TRUE))))

# A tibble: 4 x 3
  index  col3  col4
  <int> <int> <int>
1     1    20    25
2     2    30    28
3     3    35   555
4     4   666    30
,

我们也可以使用

library(dplyr)
df %>% 
  group_by(index) %>%
  summarise_at(vars(starts_with('col')),~ sum(unique(.x)))
,

假设与A. Suliman的dplyr答案中的假设类似(假设您想对唯一值求和),我建议使用data.table:

library(data.table)
my_agg_function <- function(x) {
  x <- unique(x)
  return(sum(x))
}

df[,.(col3=my_agg_function(col3),col4=my_agg_function(col4)),by=index]
本文链接:https://www.f2er.com/3006677.html

大家都在问