Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >将所有列与一列匹配的条件

将所有列与一列匹配的条件
EN

Stack Overflow用户
提问于 2019-07-03 12:10:08
回答 2查看 48关注 0票数 2

我有一个数据帧(df),其中我希望将每一列与最后一列进行匹配,以便为每一列提供新值。

以下是我的示例数据帧(df):

代码语言:javascript
运行
AI代码解释
复制
> df
              S1  S2  S3  S4  S5  main
Gene1         1   1   1   1   2   1
Gene2         1   2   1   1   1   1
Gene3         1   1   1   1   2   2
Gene4         2   1   1   1   1   1
Gene5         1   2   1   2   1   1
Gene6         1   1   1   1   1   2
Gene7        NA  NA   2   1   1   1
Gene8         1   2   1   1   1   2
Gene9         2   1   1   2   1   1

我希望将我的1到5列中的每一列与满足以下条件的最后一列进行匹配。下面的“%s”表示从1到5的每一列。

代码语言:javascript
运行
AI代码解释
复制
If S = 2 and main = 2, then value is True Positive (TP)
If S = 2 and main = 1, then value is False Positive (FP)
If S = 1 and main = 2, then value is False Negative (FN)
If S = 1 and main = 1, then value is True Negative (TN)
And NAs to remain as NAs.

因此,我的新数据框(df_updated)应该如下所示。

代码语言:javascript
运行
AI代码解释
复制
> df_updated
              S1  S2  S3  S4  S5
Gene1         TN  TN  TN  TN  FP
Gene2         TN  FP  TN  TN  TN
Gene3         FN  FN  FN  FN  TP
Gene4         FP  TN  TN  TN  TN
Gene5         TN  FP  TN  FP  TN
Gene6         FN  FN  FN  FN  FN
Gene7         NA  NA  FP  TN  TN
Gene8         FN  TP  FN  FN  FN
Gene9         FP  TN  TN  FP  TN

我知道match函数,但我不确定如何循环它们,并对每一列使用上述特定的匹配。

感谢您的帮助,谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-03 12:18:10

你可以使用dplyr的case_when

代码语言:javascript
运行
AI代码解释
复制
library(dplyr)

mutate_all(df, ~case_when(
           .x < main ~ "FN",
           .x > main ~ "FP",
           near(.x, 1) & near(.x, main) ~ "TN",
           near(.x, 2) & near(.x, main) ~ "TP"
           )) %>%
select(-main)
#>     S1   S2 S3 S4 S5
#> 1   TN   TN TN TN FP
#> 2   TN   FP TN TN TN
#> 3   FN   FN FN FN TP
#> 4   FP   TN TN TN TN
#> 5   TN   FP TN FP TN
#> 6   FN   FN FN FN FN
#> 7 <NA> <NA> FP TN TN
#> 8   FN   TP FN FN FN
#> 9   FP   TN TN FP TN
票数 3
EN

Stack Overflow用户

发布于 2019-07-03 12:28:00

使用base R,您还可以创建一个嵌套了ifelse的函数,并将该函数应用于每一列并获取值。

代码语言:javascript
运行
AI代码解释
复制
get_value <- function(x,main) {
 ifelse(main == 2 & x == 2, "TP", 
      ifelse(main == 1 & x == 2, "FP", 
            ifelse(main == 2 & x == 1, "FN", 
                 ifelse(main == 1 & x == 1 ,"TN", NA))))
}

df1 <- df[-ncol(df)]
df1[] <- lapply(df1, get_value, df$main)   

df1
#        S1   S2 S3 S4 S5
#Gene1   TN   TN TN TN FP
#Gene2   TN   FP TN TN TN
#Gene3   FN   FN FN FN TP
#Gene4   FP   TN TN TN TN
#Gene5   TN   FP TN FP TN
#Gene6   FN   FN FN FN FN
#Gene7 <NA> <NA> FP TN TN
#Gene8   FN   TP FN FN FN
#Gene9   FP   TN TN FP TN
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56869869

复制
相关文章
java中的局部变量和全局变量哪个优先_java中成员变量是全局变量吗
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/171760.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/24
1.3K0
Node.js 服务连接 MongoDB 处理最佳实践
关于如何处理 node.js 服务连接 MongoDB,我查阅了大量中英文资料,发现并没有太适合我所期望的能力的方案,因此经过一番官方文档的研究,总结了以下的连接 MongoDB 的方法(使用目前 Node.js 平台最常用的 MongoDB ODM mongoose),斗胆称之为『最佳实践』,希望能够抛砖引玉,得到大家更专业的解答。 话不多说,先上代码:
逆葵
2019/04/25
3.5K0
html js 全局 变量,JS定义全局变量
在高级开发语言(如c#、Java)中可以很方便地使用“public”等关键字,定义应用程序中的全局变量,但JaVascript的变量只能存在于当前的方法中。本例通过一个简单的方法实现全局变量的定义。
全栈程序员站长
2022/09/06
15.8K0
html js 全局 变量,JS定义全局变量
Postgresql vacuum最佳实践
Postgresql作为世界上最先进的HTAP数据库,以其超高在线事务处理及分析性能和强大的功能被广泛应用与各行各业中。但其实它也并不完美,说到postgres,不得不提那个让人一直头疼的问题,也是数据库使用者所诟病最多的地方:vacuum。那么为什么会有vacuum这个东西呢?它是做什么用的呢?
数据库架构之美
2019/12/18
1.9K0
taro中定义以及使用全局变量
错误的姿势 // app.tsx文件中 class App extends Component { componentDidMount() { this.user = { name: '张三', id: 1 }; } } // index.tsx 文件中 const app = Taro.getApp(); export default class Index extends Component { componentWillMount() { console.log(ap
用户1437675
2019/06/11
5.7K0
七大Web应用程序安全最佳实践
2020年,CVE Details的数据显示,平均每天发现50个新的漏洞。因此,采取防护措施保护Web应用程序对企业安全的至关重要。本文将探索七种最佳实践给予Web应用程序最安全的保护。
Anita
2021/10/27
1.3K0
七大Web应用程序安全最佳实践
MySQL 定义变量 – 局部 – 全局
注意哦:这个局部变量是Session回话级别的,关闭本次回话,也就是在你Navicat关闭”新建查询”变量就会消失了。
收心
2023/03/27
2.6K0
MySQL 定义变量 – 局部 – 全局
JS 定义全局变量[通俗易懂]
需注意的是该句不能包含在function内,否则是局部变量。这是第一种方式声明全局变量。
全栈程序员站长
2022/08/31
10.4K0
Java设置全局变量_java如何定义全局变量
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/171767.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/24
3K0
java全局变量的定义和声明_定义全局变量的方法
JAVA全局变量(或称成员变量)可分两种,一种是静态变量,另一种是实例变量,即在类体中定义的变量,有三点得注意: 一、成员变量不能在类体中先声明(定义)后赋值,但静态变量可以先在类体中声明,然后在方法中赋值(当然实例变量是不行的);
全栈程序员站长
2022/09/24
6.4K0
qml全局变量定义建议
  定义qml变量相当于定义JavaScript变量。JavaScript变量命名必须以字母,_,$为开头。其他字符可以是字母,_,$,数字。
Qt君
2020/02/10
3K1
Salesforce全局搜索的最佳实践
你是否想在庞大的Salesforce系统数据中搜索到客户,销售订单以及其它用户的信息,Salesforce全局搜索可以帮助你实现这一目标。
臭豆腐
2019/04/16
1.5K0
Salesforce全局搜索的最佳实践
Node.js 安全最佳实践
最近 Node.js 团队在官方文档上公布了一份最新的安全实践,解读了一些 Node.js 服务下一些常见的攻击场景以及预防手段,我们一起来看看吧!
ConardLi
2023/01/09
2.3K0
Node.js 安全最佳实践
Node.js在携程的落地和最佳实践
本文主要介绍在携程,Node.js 技术栈是如何从 0 到 1 进行技术落地的,以及在不断磨合的过程中,总结出来的最佳实践。
coder_koala
2019/12/06
7070
Node.js在携程的落地和最佳实践
PostgreSQL 自动创建分区最佳实践
分区表是 PostgreSQL 在 10 版本才具有的特性,实际使用中,用户往往需要做到提前创建分区或者按写入的数据实时创建分区。 本文探讨常见的几种自动分区创建方案。
艾超_运成
2022/02/13
4.5K0
PostgreSQL 自动创建分区最佳实践
Java如何定义全局变量_全局变量的默认值
有时一个项目中会多处涉及到路径,当你把这个项目移植到别的电脑上时就要一一修改这些路径,过程十分繁琐,所以一个全局变量在这时是必不可少的。
全栈程序员站长
2022/09/24
2.6K0
什么是全局变量,局部变量,静态全局变量,静态局部变量
这些是编程语言中的基本概念,如果你还不是非常明确地清楚标题的问题,并且不知道作用域,链接属性,存储期等概念的具体含义,那么本文你不该错过。为了更加清晰的理解我们的问题,需要先了解三个概念:作用域,链接属性,存储期。
编程珠玑
2019/07/12
2.5K0
【Node.js】全局可用变量、函数和对象
在Node.js中提供了一些全局可用的变量、函数和对象,全局就是不需要进行模块加载,可以直接使用的。其中包括全局作用域的函数和对象。也包括不在全局作用域,而在每个模块作用域都存在的变量、函数和对象,在全局可用,但不是golbal对象的属性。
颜颜yan_
2023/02/19
2.6K0
【Node.js】全局可用变量、函数和对象
Windows多个应用程序共享全局变量,静态变量
默认情况下exe不同实例使用copy-on-write技术避免共享数据,比如运行了两个exe,最开始它们使用的都是一份虚拟内存页,然后第一个实例修改了全局变量, 这时候COW就会复制那一页,然后将第一个进程地址空间对应页映射到新复制的页,第二个实例保持映射老的页。 但是如果真的需要多个实例共享数据,比如计算有多少个exe程序正在运行,就可以使用该技术。
racaljk
2018/08/31
1.2K0
loadrunner 脚本开发-定义全局变量
如果参数是全局的,在脚本中的任何一个Action中都可以使用,变量一般是局部的,如果跨Action调用会出现未声明的错误。
授客
2019/09/12
1.2K0
loadrunner 脚本开发-定义全局变量

相似问题

在员工服务中调用Web是最佳实践吗?

12

在web应用程序中管理数据库连接的最佳实践

47

加密web.config是最佳实践吗

12

JavaScript中“全局”变量的最佳实践?

12

JavaScript最佳实践-全局变量

48
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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