首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >rename_with,但谓词基于其他变量中的值

rename_with,但谓词基于其他变量中的值
EN

Stack Overflow用户
提问于 2020-11-05 22:20:54
回答 1查看 58关注 0票数 2

有没有一种方法可以rename_with,但是谓词函数不是基于列名,而是基于另一个变量中的值?

假设我有一个如下数据集:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
data <- tibble(home_team = c("SF", "KC", "JAX", "WAS", "BUF"),
               away_team = c("GB", "CAR", "HOU", "NYG", "SEA"),
               home_total = c(21, 25, 30, 22, 23.5),
               home_plays = c(65, 64, 63, 57, 60),
               away_total = c(30, 22, 25, 22, 25),
               away_plays = c(56, 62, 66, 59, 62))

我试着让它看起来像这样:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
finalized_data <- tibble(team = c("SF", "KC", "JAX", "WAS", "BUF", "GB", "CAR", "HOU", "NYG", "SEA"),
                         total = c(21, 25, 30, 22, 23.5, 30, 22, 25, 22, 25),
                         plays = c(65, 64, 63, 57, 60, 56, 62, 66, 59, 62)) 

目前我知道的最好的方法是使用一个变函数,当有很多变量时它会变得很长,而且必须有一种更干净的方法来做,因为它本质上是我基于数据中的一个变量进行的重命名。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
current_way <- data %>% 
  pivot_longer(c(home_team, away_team), names_to = "team_type", values_to = "team") %>%
  mutate(total = ifelse(str_detect(team_type, "home_team"), home_total, away_total),
         plays = ifelse(str_detect(team_type, "home_team"), home_plays, away_plays)) %>%
  select(team, total, plays)

有什么想法吗,或者有没有办法在我遗漏的pivot函数中做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-05 22:28:26

下面是pivot_longer的一个选项,它使用列名模式拆分成多个列

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(dplyr)
library(tidyr)
data %>% 
  pivot_longer(cols = everything(), names_to = c("grp", ".value"), 
           names_sep = "_") %>%
   arrange(desc(grp)) %>%
   select(-grp)    

-output

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# A tibble: 10 x 3
#   team  total plays
#   <chr> <dbl> <dbl>
# 1 SF     21      65
# 2 KC     25      64
# 3 JAX    30      63
# 4 WAS    22      57
# 5 BUF    23.5    60
# 6 GB     30      56
# 7 CAR    22      62
# 8 HOU    25      66
# 9 NYG    22      59
#10 SEA    25      62
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64706150

复制
相关文章
java中变量的默认初始值
1、整数类型(byte、short、int、long)的基本类型变量的默认值为0。
用户7886150
2020/12/03
5.7K0
js全局变量在其他方法中赋值后无法影响到该方法外的全局变量的值(奇葩问题)
做个笔记,以防忘记 遇到一个奇葩问题(书写规范不会遇到此问题 ) 问题描述:
全栈程序员站长
2022/08/22
1.8K0
linux中删除export变量名中的某个值
在Linux中,如果你想要从export变量名中删除某个值,可以使用以下方法:查看当前export变量名的值在终端中输入以下命令,查看当前export变量名的值:
自学气象人
2023/06/20
1.5K0
linux中删除export变量名中的某个值
oracle中谓词带OR语句优化
根据研发提供的慢SQL,分析Oracle AWR中SQL,并没有发现相同的SQL.发现类似SQL,只是谓词条件不一样,咨询研发得知,前端根据登录人的角色不同,SQL写法也会变化,通常优化28原则,虽然这个功能用的少,但影响用户体验。
徐靖
2022/08/23
1K0
oracle中谓词带OR语句优化
Struts2中:值栈(ValueStack)、值栈中的Action实例、Struts2中的其他命名对象 小结
  Struts2将OGNL上下文设置为Struts2中的ActionContext(内部使用的仍然是OgnlContext),并将值栈设为OGNL的根对象。   我们知道,OGNL上下文中的根对象可以直接访问,不需要使用任何特殊的“标记”,而引用上下文中的其他对象则需要使用“#”来标记。由于值栈是上下文中的根对象,因此可以直接访问。那么对于值栈中的对象该如何访问呢?Struts2提供了一个特殊的OGNLPropertyAccessor,它可以自动查找值栈内的所有对象(从栈顶到栈底),直接找到一个具有你所查找的属性的对象,找不到,就报错。也就是说,对于值栈中的任何对象都可以直接访问,而不需要使用“#”。       假设值栈中有两个对象:student和employee,两个对象都有name属性,student有学号属性number,而employee有薪水属性salary。employee先入栈;而student后入栈,位于栈顶,那么对于表达式name,访问的就是student的name属性,因为student对象位于栈顶;表达式salary,访问的就是employee的salary属性。正如你所见,访问值栈中的对象属性或方法,无须指明对象,也不用“#”,就好像值栈中的对象都是OGNL上下文中的根对象一样。这就是Struts2在OGNL基础上做出的改进。
黑泽君
2018/10/11
1K0
SparkSql 中外连接查询中的谓词下推规则
SparkSql SparkSql是架构在spark计算框架之上的分布式Sql引擎,使用DataFrame和DataSet承载结构化和半结构化数据来实现数据复杂查询处理,提供的DSL可以直接使用scala语言完成sql查询,同时也使用thrift server提供服务化的Sql查询功能。SparkSql提供了Data Source API,用户通过这套API可以自己开发一套Connector,直接查询各类数据源,包括NoSql、RDBMS、搜索引擎以及HDFS等分布式FS上的文件等。和SparkSql类似的
Spark学习技巧
2018/01/31
1.7K0
SparkSql 中外连接查询中的谓词下推规则
外部数据插值到fluent变量中
3.19.2. Format of the Interpolation File
周星星9527
2020/11/19
2.2K0
外部数据插值到fluent变量中
执行计划 - Oracle谓词越界与绑定变量窥探
编辑手记:在SQL执行的过程中,选择不同的执行计划所产生的性能差异非常大,因此能够符合业务地选择正确的执行计划非常重要。但在真实环境中,总会受到一些因素的影响,今天我们来分析谓词越界和绑定变量窥探对SQL执行计划的影响。 案例场景 最近有一客户晚上新导入了一批数据到数据库中,第二天发现业务变慢,主要是其中有一条核心业务SQL执行计划走错导致。 结果排查发现客户在导入数据后并未重新收集统计信息,SQL使用绑定变量,窥探的变量刚好是越界,导致SQL第一次硬解析生成的执行计划走错。再加上10G的库导致接下
数据和云
2018/03/07
1.7K0
执行计划 - Oracle谓词越界与绑定变量窥探
sparksql 中外连接查询中的谓词下推处理
本文介绍了在Spark SQL中,通过使用Join操作进行数据处理的注意事项和优化策略。首先,介绍了Spark SQL中Join操作的基本概念和语法。然后,详细阐述了Spark SQL中Join操作的不同类型,包括内连接、左连接、右连接、全连接、半连接、自连接和交叉连接。接着,探讨了Spark SQL中Join操作的条件,包括join条件、filter条件、where条件、orderBy条件和聚合函数。最后,通过实例分析了Spark SQL中Join操作的优化方法,包括使用广播变量、分区、缓存和广播join等。通过本文的介绍,读者可以更好地理解Spark SQL中Join操作的使用方法和优化策略,从而提高数据处理效率。"
兵马勇
2017/09/14
5.1K0
sparksql 中外连接查询中的谓词下推处理
谓词逻辑
如: 小明是个小学生 其中,小明 就是个体词, 是个小学生 就是谓词, 说明了客体的性质。 再如: 6 大于 5 其中 6 与 5 为个体词,大于 为谓词,说明了客体间的关系。
yhlin
2023/02/27
1.1K0
Django模板引擎中变量作为属性值调用
作者:matrix 被围观: 2,268 次 发布时间:2019-05-16 分类:Python 零零星星 | 4 条评论 »
HHTjim 部落格
2022/09/26
1.6K0
Django模板引擎中变量作为属性值调用
python输出多个变量的值。
有点类似于C语言 print("%s,%d,%d"%(name ,age ,school))
py3study
2020/01/10
5K0
PHP变量传递值的方法
变量的传值方式,是指一个变量传给另一个变量的内部细节形式——单对单. 值传递 互相独立,互不影响. <?php $v1 = 1; $v2 = $v1; // 值传递
小新哟
2020/09/23
2.8K0
PHP变量传递值的方法
如何获取变量token的值
1.客户端使用用户名跟密码请求登录 2.服务端收到请求,去验证用户名与密码 3.验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端 4.客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 LocalStorage 里,客户端每次向服务端请求资源的时候需要带着服务端签发的 Token 5.服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据 6.web/APP登录的时候发送加密的用户名和密码到服务器,服务器验证用户名和密码,如果成功,以某种方式比如随机生成32位的字符串作为token,存储到服务器中,并返回 token 到web/APP,以后web/APP请求时凡是需要验证的地方都要带上该 token,然后服务器端验证 token,成功返回所需要的结果,失败返回错误信息,让他重新登录。其中服务器上 token 设置一个有效期,每次web/APP请求的时候都验证token 和有效期。 二、如何获取token的值,进行接口测试
用户7880705
2020/10/29
14.5K0
Sass变量插值
程序员 NEO
2023/09/29
1530
Sass变量插值
函数的变量+返回值
函数的变量: 局部变量 和 全局变量 Python中的任何变量都有特定的作用域 在函数中定义的变量一般只能在该函数内部使用,这些只能在程序的特定部分使用的变量我们称之为局部变量 在一个文件顶部定义的变量可供文件中的任何函数调用,这些可以为整个程序所使用的变量称为全局变量 (1)、局部函数: #!/usr/bin/python def fun(): x = 100 ##定义一个内部的函数是 x = 100,只在fun() 内部有效。 print x fun() 执行结果: [[e
老七Linux
2018/05/31
5K0
【C 语言】指针间接赋值 ( 直接修改 和 间接修改 指针变量 的值 | 在函数中 间接修改 指针变量 的值 | 在函数中 间接修改 外部变量 的原理 )
直接修改 指针变量 的值 , 就是为其赋值一个地址值 , 使用 & 取地址符 , 将变量地址赋值给指针变量 , 或者使用 malloc 函数分配内存赋值给 指针变量 ;
韩曙亮
2023/03/29
21.4K0
【C 语言】指针间接赋值 ( 直接修改 和 间接修改 指针变量 的值 | 在函数中 间接修改 指针变量 的值 | 在函数中 间接修改 外部变量 的原理 )
less变量插值
程序员 NEO
2023/09/29
2140
less变量插值
SQL谓词 ALL
ALL关键字与比较操作符一起创建谓词(量化比较条件),如果标量表达式的值与子查询检索到的所有对应值匹配,则该谓词为真。 ALL谓词将单个标量表达式项与单个子查询SELECT项进行比较。 具有多个选择项的子查询将生成SQLCODE -10错误。
用户7741497
2022/05/09
5850
点击加载更多

相似问题

基于其他谓词的谓词生成器删除谓词

12

基于R中其他变量的变量

11

如何基于等式以外的其他谓词执行GroupJoin?

36

如何匹配XPATH谓词中变量中的值

11

基于R中其他变量的模拟变量

17
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文