首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R同名组和

R同名组和
EN

Stack Overflow用户
提问于 2018-10-05 03:16:35
回答 1查看 53关注 0票数 1

在r中没有循环的情况下,有任何方法可以对这些数据进行求和吗?第一排没有安娜,也没有空白。这是一个顺序数据的列表。

在此之前:

代码语言:javascript
复制
Column 1  Column 2
FLOWING 
DOWNTIME  1,922
FLOWING   23
FLOWING   8
FLOWING   23
FLOWING   26
DOWNTIME  36
FLOWING   1
FLOWING   8
DOWNTIME  12
FLOWING   0
FLOWING   3
FLOWING   13
DOWNTIME  2
FLOWING   10
FLOWING   12
FLOWING   30
DOWNTIME  24
DOWNTIME  1

之后:

代码语言:javascript
复制
Column 1  Column 2
FLOWING 
DOWNTIME  1,922
FLOWING   80
DOWNTIME  36
FLOWING   9
DOWNTIME  12
FLOWING   16
DOWNTIME  2
FLOWING   52
DOWNTIME  25
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-05 03:19:39

“Column2”中有,,这将使其成为character类。因此,我们移除,,将其转换为numeric,并在按“Column1”的游程-id (rleiddata.table)进行分组后获得sum

代码语言:javascript
复制
library(dplyr)
library(data.table)
df1 %>%
    mutate(Column2 = as.numeric(str_remove(Column2, ","))) %>%
    group_by(grp = rleid(Column1)) %>% 
    summarise(Column1 = first(Column1), 
              Column2 = sum(Column2)) %>%
    ungroup %>%
    select(-grp)

或者使用data.table方法

代码语言:javascript
复制
setDT(df1)[, .(Column1 = first(Column1), 
      Column2 = sum(as.numeric(sub(",", "", Column2)))), .(grp = rleid(Column1))]

数据

代码语言:javascript
复制
df1 <- structure(list(Column1 = c("FLOWING", "DOWNTIME", "FLOWING", 
 "FLOWING", "FLOWING", "FLOWING", "DOWNTIME", "FLOWING", "FLOWING", 
 "DOWNTIME", "FLOWING", "FLOWING", "FLOWING", "DOWNTIME", "FLOWING", 
 "FLOWING", "FLOWING", "DOWNTIME", "DOWNTIME"), Column2 = c("", 
 "1,922", "23", "8", "23", "26", "36", "1", "8", "12", "0", "3", 
 "13", "2", "10", "12", "30", "24", "1")), class = "data.frame", 
 row.names = c(NA, -19L))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52657888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档