首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >R匹配和替换数据帧中的模式

R匹配和替换数据帧中的模式
EN

Stack Overflow用户
提问于 2016-08-03 07:27:05
回答 2查看 1.3K关注 0票数 3

我有一个包含AA、AB和BB三种类型的数据帧。在此之后,还有包含不同类型的样本1000到1005。但是,有些字符串是类型BA,与类型2AB不同,因此我希望更改字符串以匹配类型2类别。

输入:

代码语言:javascript
运行
AI代码解释
复制
Type 1  Type 2  Type 3  1000    1001    1002    1003    1004    1005
AA      AB      BB      BB      BB      AB      BA      AA      BA
CC      AC      AA      CA      CA      CC      AA      AA      AC
EE      EF      FF      EF      FF      FE      FE      EE      FF

所需输出:

代码语言:javascript
运行
AI代码解释
复制
Type 1  Type 2  Type 3  1000    1001    1002    1003    1004    1005
AA      AB      BB      BB      BB      AB      AB      AA      AB
CC      AC      AA      AC      AC      CC      AA      AA      AC
EE      EF      FF      EF      FF      EF      EF      EE      FF
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-03 07:49:16

如果我们需要根据'Type_2‘列中的值来更改数字列值,即反转的值应该更改为'Type_2’的值,那么一个选项是apply with MARGIN = 1 (循环遍历行),从4到最后一个元素的子集(x[4:length(x)] -对应于数字列名中的元素),检查第一个字符是否不等于第二个字符(substr(x1, 1, 1) != substr(x1, 2, 2))和(&)是否不等于'Type_2‘(x1 != x[2]),然后我们使用sub来颠倒'x1‘或else中元素的顺序,返回'x1’(ifelse(...)),将输出赋值回原始向量(x[4:length(x)]),返回'x',转置(t)输出,并将值赋值回'df1‘。

代码语言:javascript
运行
AI代码解释
复制
df1[] <- t(apply(df1, 1, FUN = function(x) {
               x1 <- x[4:length(x)]
               x[4:length(x)] <- ifelse(substr(x1,1,1)!= substr(x1,2,2) & x1 != x[2],
                                     sub("(.)(.)", "\\2\\1", x1), x1)
                 x}))
 df1
 #  Type_1 Type_2 Type_3 1000 1001 1002 1003 1004 1005
 #1     AA     AB     BB   BB   BB   AB   AB   AA   AB
 #2     CC     AC     AA   AC   AC   CC   AA   AA   AC
 #3     EE     EF     FF   EF   FF   EF   EF   EE   FF

数据

代码语言:javascript
运行
AI代码解释
复制
 df1 <-  structure(list(Type_1 = c("AA", "CC", "EE"), Type_2 = c("AB", 
 "AC", "EF"), Type_3 = c("BB", "AA", "FF"), `1000` = c("BB", "CA", 
 "EF"), `1001` = c("BB", "CA", "FF"), `1002` = c("AB", "CC", "FE"
 ), `1003` = c("BA", "AA", "FE"), `1004` = c("AA", "AA", "EE"), 
`1005` = c("BA", "AC", "FF")), .Names = c("Type_1", "Type_2", 
 "Type_3", "1000", "1001", "1002", "1003", "1004", "1005"), 
  class =  "data.frame", row.names = c(NA, -3L))
票数 3
EN

Stack Overflow用户

发布于 2016-08-03 07:32:47

是否要将"BA“替换为"AB"?答案肯定是这样的。

代码语言:javascript
运行
AI代码解释
复制
 dataset[ dataset== "BA" ] <- "AB"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38737064

复制
相关文章
R中的替换函数gsub
其中pattern是要替换的字符,replacement是替换成的字符,x是对应的string或string vector。
生信交流平台
2022/09/21
3.4K0
R中的替换函数gsub
Rust中的模式匹配
在其它一些语言中,let x = 5 之类的语句,仅仅只是赋值语句。但是在rust中,可以换个角度理解,认为5这个值匹配到了x变量。如果觉得有些牵强,可以再来一个示例:
菩提树下的杨过
2021/11/30
1.9K0
Rust中的模式匹配
Swift中的模式匹配
Swift 作为一门现代语言,除去安全,快速等特性之外,还有个明显有别于其他语言的特性,就是巨量细致入微的语言特性。类似iOS API,初学者觉得繁杂,无从下手,但是熟悉之后,绝对能少写不少代码。
小刀c
2022/09/21
1.8K0
less中的匹配模式
首先来看如下的代码,一个 div 元素,分别设置了上下左右的宽度高度和颜色,然后在浏览器中打开发现四个不同的角都是一个小小的三角形如下
程序员NEO
2023/09/29
2820
less中的匹配模式
LeetCode - 查找和替换模式
原题地址:https://leetcode-cn.com/problems/find-and-replace-pattern/
晓痴
2019/07/30
8760
【R语言】根据映射关系来替换数据框中的内容
前面给大家介绍过☞R中的替换函数gsub,还给大家举了一个临床样本分类的具体例子。今天我们接着来分享一下如何根据已有的映射关系来对数据框中的数据进行替换。例如将数据框中的转录本ID转换成基因名字。我们直接结合这个具体的例子来进行分享。
生信交流平台
2022/09/21
4.2K0
【R语言】根据映射关系来替换数据框中的内容
CAN通信的数据帧和远程帧「建议收藏」
(先来一波操作,再放概念) 远程帧和数据帧非常相似,不同之处在于: (1)RTR位,数据帧为0,远程帧为1; (2)远程帧由6个场组成:帧起始,仲裁场,控制场,CRC场,应答场,帧结束,比数据帧少了数据场。 (3)远程帧发送特定的CAN ID,然后对应的ID的CAN节点收到远程帧之后,自动返回一个数据帧。
全栈程序员站长
2022/07/23
6.9K0
CAN通信的数据帧和远程帧「建议收藏」
Python3.10中的模式匹配
Python 3.10 版本还在开发之中,目前释出的 dev 版本实现了新语法特性 Structural Pattern Matching(PEP 634):可以利用match语句和case语句匹配对象的不同 模式,并应用不同的行为。
杜逸先
2021/06/09
1.5K0
C# 8.0 中的模式匹配
多年来,我们在 C# 中实现了许多功能,不仅改善了代码的性能,更重要的是还提高了代码的可读性。鉴于软件行业的快速发展,语言当然需要与其用户群同步发展。广泛用于 Haskell、Swift 或 Kotlin 等各种编程语言的某些功能,有时也会用于 C#。其中一个功能就是模式匹配,这一概念已经存在很长时间,是 .NET 领域中的许多开发人员一直期待的功能。
AI.NET 极客圈
2019/08/16
1.9K0
详解CAN总线:标准数据帧和扩展数据帧
CAN协议可以接收和发送11位标准数据帧和29位扩展数据帧,CAN标准数据帧和扩展数据帧只是帧ID长度不同,以便可以扩展更多CAN节点。
不脱发的程序猿
2022/10/04
10.9K0
详解CAN总线:标准数据帧和扩展数据帧
视频中的 I 帧,P 帧,B 帧
视频传输原理 视频是由一幅幅帧图像和一组音频构成的,视频的播放过程可以简单理解为一帧帧的画面按照时间顺序呈现出来的过程。但是在实际应用中,并不是每一帧都是完整的画面,因为如果每一帧画面都是完整的图片,那么一个视频的体积就会很大。这样对于网络传输或者视频数据存储来说成本太高,所以通常会对视频流中的一部分画面进行压缩(编码)处理。 编码器将多张图像进行编码后生产成一段一段的 GOP ( Group of Pictures ) 如下图, 解码器在播放时则是读取一段一段的 GOP 进行解码后读取画面再渲染显示。GO
用户1097444
2022/06/29
3.8K0
视频中的 I 帧,P 帧,B 帧
JavaScript 替换所有匹配内容
由于JavaScript 的 replace 只能替换一次,因此另外编写一个能现替换全部匹配内容方法,代码如下:
用户1289394
2021/10/13
1.8K0
python用re.sub实现分组匹配和替换(及问答系统中的应用)
关于正则表达式替换,前面我写过一个应用: python2代码搬运到python3要改很多print? 试试用pyCharm的正则表达式替换 其实这里的替换已经使用了分组的思
blmoistawinde
2019/10/30
4.1K0
Scala 高阶(九):Scala中的模式匹配
本次主要分享Scala中关于模式匹配的内容,Scala中的模式匹配类似于Java中的switch语法,但是Scala在基于Java的思想上补充了特有的功能。
百思不得小赵
2022/12/01
1.6K0
(数据科学学习手札49)Scala中的模式匹配
  Scala中的模式匹配类似Java中的switch语句,且更加稳健,本文就将针对Scala中模式匹配的一些基本实例进行介绍:
Feffery
2018/09/07
7670
《搜索和推荐中的深度匹配》——2.2 搜索和推荐中的匹配模型
当应用于搜索时,匹配学习可以描述如下。一组查询文档对D=(q1​,d1​,r1​),(q2​,d2​,r2​),...,(qN​,dN​,rN​)作为训练数据给出,其中 i 和 qi​,di​和ri​(i=1,...,N)分别表示查询,文档和查询文档匹配度(相关性)。每个元组 r)∈D的生成方式如下:查询q根据概率分布P(q)生成,文档d根据条件概率分布P(d∣q)生成,并且相关性r是根据条件概率分布 P(r∣q,d)生成的。这符合以下事实:将query独立提交给搜索系统,使用query words检索与query关联的文档,并且文档与query的相关性由query和文档的内容确定。带有人类标签的数据或点击数据可以用作训练数据。
小爷毛毛_卓寿杰
2021/09/10
1.5K0
数据结构- 串的模式匹配算法:BF和 KMP算法
1) 从目标串s 的第一个字符起和模式串t的第一个字符进行比较,若相等,则继续逐个比较后续字符,否则从串s 的第二个字符起再重新和串t进行比较。
黄规速
2022/04/14
4290
数据结构- 串的模式匹配算法:BF和 KMP算法
R包更新过程中readr和cli不匹配
下面是学员解决问题的记录 (生信技能树学员 ) 自我介绍:我是一名儿科医生。硕士毕业工作已有十年的时候,在职博士还没有毕业方向,觉得生信学习或许是一个新的出口,于是跟随生信技能树的马拉松课程学习了数据挖掘,也学习了一些Linux的基础知识。一边忙碌的临床工作,一边挤时间学习这从未接触过的领域,到如今刚好一年,结合部分临床实验数据、数据挖掘生物信息分析等内容,终于完成了毕业论文的撰写。目前博士论文刚刚通过盲审评阅,等待着毕业收尾工作。非常感谢生信技能树的各位老师。 💡当你开始学习生信时,一定会遇到各种报
生信技能树
2022/06/08
3.4K0
R包更新过程中readr和cli不匹配
LeetCode-890-查找和替换模式
你有一个单词列表 words 和一个模式 pattern,你想知道 words 中的哪些单词与模式匹配。
benym
2022/07/14
4160
R中字段抽取、字段合并、字段匹配
1、字段抽取 字段抽取,是根据已知列数据的开始和结束位置,抽取出新的列 字段截取函数:substr(x,start,stop) tel <- '18922254812'; #运营商 band <- substr(tel, 1, 3) #地区 area <- substr(tel, 4, 7) #号码段 num <- substr(tel, 8, 11) tels <- read.csv('1.csv'); #运营商 bands <- substr(tels[,1], 1, 3) #地区 areas <-
Erin
2018/01/09
5.5K0

相似问题

模式匹配&R中数据的替换/清理

34

R匹配并用数据帧替换列名。

33

R中数据帧中的匹配与替换操作

510

如果与R数据帧中的特定模式匹配,则替换列中的文本

110

如何匹配和替换R中的数据帧中的字符串?

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档