首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >根据列中的字符和数据帧中的出现顺序为每个组设置子集行。

根据列中的字符和数据帧中的出现顺序为每个组设置子集行。
EN

Stack Overflow用户
提问于 2017-10-04 12:35:05
回答 1查看 80关注 0票数 1

我有一个类似的数据。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
B <- data.frame(State = c(rep("Arizona", 8), rep("California", 8), rep("Texas", 8)), 
  Account = rep(c("Balance", "Balance", "In the Bimester", "In the Bimester", "Expenses",  
  "Expenses", "In the Bimester", "In the Bimester"), 3), Value = runif(24))

您可以看到,Account有4个元素"In the Bimester"两个元素的“块”对应于每个状态,"Expenses"在它们之间。

这里的顺序很重要,因为第一个块指的不是与第二个块相同的东西。

我的数据实际上更复杂,它有第四个变量,指示每一行Account的含义。每个Account元素(因子本身)的元素数可以改变。例如,在某些状态下,"In the Bimester"的第一个“块”可以有6行,第二个可以有7行;但是,我不能用第四个变量来区分。

想要的:我想要子集我的数据,将这两个"In the Bimester"按每个状态分割,只将第一个“块”的行按每个状态或第二个“块”插入。

我有一个使用data.table包的解决方案,但我发现它有点差。有什么想法吗?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(data.table)
B <- as.data.table(B)
B <- B[, .(Account, Value, index = 1:.N), by = .(State)]
x <- B[Account == "Expenses", .(min_ind = min(index)), by = .(State)]
B <- merge(B, x, by = "State")
B <- B[index < min_ind & Account == "In the Bimester", .(Value), by = .(State)]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-04 13:19:21

您可以使用dplyr包:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(dplyr)
B %>% mutate(helper = data.table::rleid(Account)) %>% 
      filter(Account == "In the Bimester") %>% 
      group_by(State) %>% filter(helper == min(helper)) %>% select(-helper)

# # A tibble: 6 x 3
# # Groups:   State [3]
#        State         Account      Value
#       <fctr>          <fctr>      <dbl>
# 1    Arizona In the Bimester 0.17730148
# 2    Arizona In the Bimester 0.05695585
# 3 California In the Bimester 0.29089678
# 4 California In the Bimester 0.86952723
# 5      Texas In the Bimester 0.54076144
# 6      Texas In the Bimester 0.59168138

如果您不使用min,而是使用max,那么您将得到每个State最后出现的"In the Bimester"。还可以通过将最后一个管道更改为Account列来排除select(-helper,-Account)列。

p.s.如果您不想使用data.table中的rleid而只使用dplyr函数,请查看这个thread

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46573724

复制
相关文章
workflow01-初探snakemake
我自己一直在寻求可以将不同的工作流串接的方式。之前尝试了nextflow,但发现语法让我头疼。无奈发现了基于python 框架的snakemake,如释重负,立马学一下。
北野茶缸子
2022/07/07
1.6K0
workflow01-初探snakemake
Snakemake入门
Snakemake 是一个基于Python3的用于构建和管理数据分析工作流程的免费工具。
小汪Waud
2023/09/18
3250
Snakemake入门
workflow04-用snakemake处理复杂命名
但通常来说,测序文件也会对应一些metadata。比如通过ENA 下载测序数据,就可以选择需要的信息:
北野茶缸子
2022/07/07
1.2K0
workflow04-用snakemake处理复杂命名
如何处理动态图片?怎样选择合适的动态工具?
静态图片的处理是许多人都会的,任何一个人都能通过手机中的修图软件将图片进行一些基本的调整。但是如何处理动态图片,把图片进行动画设置,就不是一般人都能掌握的技能了。平时大家用到的微信表情以及一些动态图片都是经过动态处理的照片。这技能难不难呢?如何处理动态图片呢?
用户8715145
2021/12/30
5190
CabloyJS也有工作流引擎了,是你想要的吗?
众所周知,NodeJS作为后端开发语言和运行环境,样样都好,就差一个NodeJS工作流引擎。CabloyJS 4.0重点开发了NodeJS工作流引擎,并作为内置的基础核心模块,近一步拓展了NodeJS在后端的应用场景,为深入研发各类商业业务逻辑,提供了基础支撑
zhennann
2020/12/21
1K0
CabloyJS也有工作流引擎了,是你想要的吗?
创建多少线程是合适的
面试中经常有人被问到线程池的数据设置多少合适呢,今天我们就看一下这个问题,首先我们需要知道两个问题
小土豆Yuki
2020/12/16
7420
创建多少线程是合适的
GATK最佳实践之数据预处理SnakeMake流程
写的数据预处理snakemake流程其实包括在每个单独的分析中比如种系遗传变异和肿瘤变异流程中,这里单独拿出来做演示用,因为数据预处理是通用的,在call变异之前需要处理好数据。
生信探索
2023/05/27
4500
流程管理工具snakemake学习笔记杂记
这里rule all的作用还是没有搞明白,看有的文档说是最终保留的文件 ,我这里rule all 只写了了最终的html和json,但是最终的结果里是有过滤后的fastq文件的
用户7010445
2022/05/23
9460
流程管理工具snakemake学习笔记杂记
现在做 Web 全景合适吗?
Web 全景在以前带宽有限的条件下常常用来作为街景和 360° 全景图片的查看。它可以给用户一种 self-immersive 的体验,通过简单的操作,自由的查看周围的物体。随着一些运营商推出大王卡等
villainhr
2018/07/03
2.2K0
workflow02-可视化展示snakemake流程
对于工作流来说,Directed acyclic graph,有向非循环图是一个非常不错的展示的策略。
北野茶缸子
2022/07/07
8900
workflow02-可视化展示snakemake流程
什么是BI以及如何挑选一款合适的BI工具?
什么是BI?这应该是很多刚刚接触BI的读者最想了解的问题。BI即商业智能,它是一套完整的解决方案,用来将企业中现有的数据进行有效的整合,快速准确的提供报表并提出决策依据,帮助企业做出明智的业务经营决策。商业智能的概念最早在1996年提出。当时将商业智能定义为一类由数据仓库(或数据集市)、查询报表、数据分析、数据挖掘、数据备份和恢复等部分组成的、以帮助企业决策为目的技术及其应用。
数据前沿
2020/08/25
1.4K0
什么是BI以及如何挑选一款合适的BI工具?
现在做 Web 全景合适吗?
Web 全景在以前带宽有限的条件下常常用来作为街景和 360° 全景图片的查看。它可以给用户一种 self-immersive 的体验,通过简单的操作,自由的查看周围的物体。随着一些运营商推出大王卡等
企鹅号小编
2018/01/08
4.4K0
现在做 Web 全景合适吗?
流程管理工具snakemake学习笔记杂记02
https://eriqande.github.io/eca-bioinf-handbook/snakemake-chap.html
用户7010445
2022/05/23
1.2K0
流程管理工具snakemake学习笔记杂记02
面试-Zookeeper作为注册中心合适吗
这个是某公司的面试题,之前没有考虑到这个问题,只知道zk如何做注册中心,很少考虑合不合适问题,因为大家都这么用
小土豆Yuki
2022/12/01
3640
面试-Zookeeper作为注册中心合适吗
snakemake 学习笔记3
注意: 这里要把生成的文件{1,2,3}_add_a.txt写出来, 命令才可以运行.
邓飞
2019/07/07
9270
snakemake 学习笔记3
如何选择合适的API测试工具
苦叶子说:对于新手,从UI级开始自动化测试,是一条作死的路,可能会直接扼杀你自动化测试之路。
苦叶子
2020/03/11
9830
把Redis当作队列来用,真的合适吗?
也些人则反对,认为 Redis 会「丢」数据,最好还是用「专业」的队列中间件更稳妥。
_Kaito
2021/04/28
7.6K1
把Redis当作队列来用,真的合适吗?
iPad Pro 是生产力工具吗?
时常听见有人揶揄,说 iPad Pro 这东西是「买前生产力,买后爱奇艺」。想要用它提升效率的冲动很常见。但拿它正经来做事情,是不靠谱的。
王树义
2021/07/08
1.1K0
iPad Pro 是生产力工具吗?
snakemake 学习笔记4
我在stackoverflow中问了一个问题, 获得了答案, 对snakemake的理解也加深了一步.
邓飞
2019/07/07
8870
snakemake 学习笔记4
workflow03-用snakemake制作比对及变异查找流程
这个snakemake workflow 主要包括:mapping, sort >> index >> call variants
北野茶缸子
2022/07/07
1.4K0
workflow03-用snakemake制作比对及变异查找流程

相似问题

在VB项目中引用解决方案项

11

是否可以在C# MVC3项目中添加对的引用?

12

在BAL中不向DAL添加项目引用的依赖项注入

23

是否可以将项目依赖项添加到不在解决方案中的项目中?

16

我是否可以从.NET 5项目中添加对.NET框架DLL的引用?

40
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文