将mutate与starts_with一起用于列和if_else

K·格莱斯

我有多个Tibble,我想用一个函数将它们全部变异。问题是列名部分不同:这就是我要应用的

mpg %>% mutate(model_QQ = if_else(year == 1999, 0 , if_else(cty > 20, 1, -1)))

但是小标题有类似的名字:

c("audi","nissan","subaru") %>% set_names() %>% map(~mpg %>% rename_at(vars(model:class), list(~str_c(.,"_",!!quo(.x)))))

我当时想做些类似的事情:

mpg %>% mutate(model_QQ = if_else(starts_with("year") == 1999, 0 , if_else(starts_with("cty") > 20, 1, -1)))

但是这些仅在select函数内部起作用。有什么建议?

编辑我用情况下重新制作代码,也许对于我正在寻找的方式更清楚:

mpg %>% 
mutate(
model_QQ = case_when(

starts_with("year") == 1999 ~ 0L,
  starts_with("cty") > 20 ~ 1L,
  starts_with("cty") <= 20 ~ -1L
))
艾伦·卡梅伦

您可以这样做:

mpg %>% 
  mutate(across(starts_with("year"), ~if_else(.x >= 1999, 0 , 1)), 
         across(starts_with("cty"),  ~if_else(.x > 20, 1, -1)))
#> # A tibble: 234 x 11
#>    manufacturer model  displ  year   cyl trans  drv     cty   hwy fl    class
#>    <chr>        <chr>  <dbl> <dbl> <int> <chr>  <chr> <dbl> <int> <chr> <chr>
#>  1 audi         a4       1.8     0     4 auto(~ f        -1    29 p     comp~
#>  2 audi         a4       1.8     0     4 manua~ f         1    29 p     comp~
#>  3 audi         a4       2       0     4 manua~ f        -1    31 p     comp~
#>  4 audi         a4       2       0     4 auto(~ f         1    30 p     comp~
#>  5 audi         a4       2.8     0     6 auto(~ f        -1    26 p     comp~
#>  6 audi         a4       2.8     0     6 manua~ f        -1    26 p     comp~
#>  7 audi         a4       3.1     0     6 auto(~ f        -1    27 p     comp~
#>  8 audi         a4 qu~   1.8     0     4 manua~ 4        -1    26 p     comp~
#>  9 audi         a4 qu~   1.8     0     4 auto(~ 4        -1    25 p     comp~
#> 10 audi         a4 qu~   2       0     4 manua~ 4        -1    28 p     comp~
#> # ... with 224 more rows

或者,如果您想重命名它们year_modelQQ,则cty_modelQQ可以执行以下操作:

mpg %>% 
  mutate(across(starts_with("year"), list(modelQQ = ~if_else(.x >= 1999, 0 ,1))), 
         across(starts_with("cty"),  list(modelQQ = ~if_else(.x > 20, 1, -1))))
#> # A tibble: 234 x 13
#>    manufacturer model displ  year   cyl trans drv     cty   hwy fl    class year_modelQQ
#>    <chr>        <chr> <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>        <dbl>
#>  1 audi         a4      1.8  1999     4 auto~ f        18    29 p     comp~            0
#>  2 audi         a4      1.8  1999     4 manu~ f        21    29 p     comp~            0
#>  3 audi         a4      2    2008     4 manu~ f        20    31 p     comp~            0
#>  4 audi         a4      2    2008     4 auto~ f        21    30 p     comp~            0
#>  5 audi         a4      2.8  1999     6 auto~ f        16    26 p     comp~            0
#>  6 audi         a4      2.8  1999     6 manu~ f        18    26 p     comp~            0
#>  7 audi         a4      3.1  2008     6 auto~ f        18    27 p     comp~            0
#>  8 audi         a4 q~   1.8  1999     4 manu~ 4        18    26 p     comp~            0
#>  9 audi         a4 q~   1.8  1999     4 auto~ 4        16    25 p     comp~            0
#> 10 audi         a4 q~   2    2008     4 manu~ 4        20    28 p     comp~            0
#> # ... with 224 more rows, and 1 more variable: cty_modelQQ <dbl>

编辑

使用更新的信息,这应该可以解决问题:

mpg %>% 
  mutate(across(starts_with("year"), list(A = ~1 - (.x ==  1999))),
         across(starts_with("cty"), list(A = ~ -1 + 2*(.x > 20))),
         modelQQ = ifelse(year_A == 0, 0, cty_A)) %>%
  select(-ends_with("_A")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将 mysql 和 mongodb 一起用于 Django

来自分类Dev

如何将TQuery与Oracle SQL语法一起用于变量分配和参数?

来自分类Dev

如何将packageScan和Persistence.xml一起用于EntityManagerFactory?

来自分类Dev

将Highcharts与mysql一起用于页面访问

来自分类Dev

将Highcharts与mysql一起用于页面访问

来自分类Dev

ggplot2:图例将颜色和隐藏线混合在一起用于预测图

来自分类Dev

将迁移与单独的上下文一起用于常规模型和身份

来自分类Dev

将WebDriver和Testng与apache元模型一起用于多个Excel工作表数据作为测试输入

来自分类Dev

使用mutate和starts_with

来自分类Dev

JSP和Python可以一起用于同一数据库吗?

来自分类Dev

将List <string>与逗号加“ and”一起用于最后一个元素

来自分类Dev

可以与with语句一起用于条件执行和完成

来自分类Dev

将注释与Apache Olingo一起用于OData v4

来自分类Dev

如何将Alamofire与自定义标头一起用于POST请求

来自分类Dev

将RewriteCond与%{REQUEST_URI}一起用于mod_rewrite

来自分类Dev

将apply_async与回调函数一起用于进程池

来自分类Dev

如何将Stanford CoreNLP Java库与Ruby一起用于情感分析?

来自分类Dev

将Active Directory与Web API一起用于SPA

来自分类Dev

将AngularJS与SpringSecurity3.2一起用于CSRF

来自分类Dev

将Guice多重绑定与辅助注入一起用于集合成员

来自分类Dev

将外部C ++库与Johnny Five一起用于基于Arduino的项目

来自分类Dev

将CallByName与“事件接收器”一起用于表单上的字段

来自分类Dev

我们能否将Cookie与httpclient lib一起用于Clojure

来自分类Dev

如何将Launchmyapp与Meteor一起用于验证电子邮件链接?

来自分类Dev

将RoboSpice / Retrofit与参数化类型一起用于JSON响应

来自分类Dev

如何将pyinstaller与隐藏导入一起用于scipy.optimize Minimumsq

来自分类Dev

如何将Nginx与Go一起用于子域?

来自分类Dev

如何将asciidoctor与tocify一起用于动态toc?

来自分类Dev

如何将Stetho与okhttp3一起用于网络检查?

Related 相关文章

  1. 1

    将 mysql 和 mongodb 一起用于 Django

  2. 2

    如何将TQuery与Oracle SQL语法一起用于变量分配和参数?

  3. 3

    如何将packageScan和Persistence.xml一起用于EntityManagerFactory?

  4. 4

    将Highcharts与mysql一起用于页面访问

  5. 5

    将Highcharts与mysql一起用于页面访问

  6. 6

    ggplot2:图例将颜色和隐藏线混合在一起用于预测图

  7. 7

    将迁移与单独的上下文一起用于常规模型和身份

  8. 8

    将WebDriver和Testng与apache元模型一起用于多个Excel工作表数据作为测试输入

  9. 9

    使用mutate和starts_with

  10. 10

    JSP和Python可以一起用于同一数据库吗?

  11. 11

    将List <string>与逗号加“ and”一起用于最后一个元素

  12. 12

    可以与with语句一起用于条件执行和完成

  13. 13

    将注释与Apache Olingo一起用于OData v4

  14. 14

    如何将Alamofire与自定义标头一起用于POST请求

  15. 15

    将RewriteCond与%{REQUEST_URI}一起用于mod_rewrite

  16. 16

    将apply_async与回调函数一起用于进程池

  17. 17

    如何将Stanford CoreNLP Java库与Ruby一起用于情感分析?

  18. 18

    将Active Directory与Web API一起用于SPA

  19. 19

    将AngularJS与SpringSecurity3.2一起用于CSRF

  20. 20

    将Guice多重绑定与辅助注入一起用于集合成员

  21. 21

    将外部C ++库与Johnny Five一起用于基于Arduino的项目

  22. 22

    将CallByName与“事件接收器”一起用于表单上的字段

  23. 23

    我们能否将Cookie与httpclient lib一起用于Clojure

  24. 24

    如何将Launchmyapp与Meteor一起用于验证电子邮件链接?

  25. 25

    将RoboSpice / Retrofit与参数化类型一起用于JSON响应

  26. 26

    如何将pyinstaller与隐藏导入一起用于scipy.optimize Minimumsq

  27. 27

    如何将Nginx与Go一起用于子域?

  28. 28

    如何将asciidoctor与tocify一起用于动态toc?

  29. 29

    如何将Stetho与okhttp3一起用于网络检查?

热门标签

归档