【问题标题】:Multiply a variable in pipe将管道中的变量相乘
【发布时间】:2018-09-11 17:25:51
【问题描述】:

我是管道 R 的新手。 我有一个这样的数据框

library(magrittr)
library(dplyr)
df = data.frame(a= c(1,2,3,4,5), b = c(3,4,5,6,7))

结果是

df_min = df %>% filter(a > 2) %$%  as.data.frame( cbind(a=a*10, b)) 
> df_min
   a b
1 30 5
2 40 6
3 50 7

有没有比%$% as.data.frame( cbind(a=a*10, b))更方便更短的方法?

【问题讨论】:

  • df %>% filter(a > 2) %>% mutate(a = a * 10) ?

标签: r pipe magrittr


【解决方案1】:

data.table 的较短选项

library(data.table)
setDT(df)[a > 2, .(a = a * 10, b)]

【讨论】:

    【解决方案2】:

    更方便的方法如下:

    library(magrittr)
    library(dplyr)
    
    df = data.frame(a= c(1,2,3,4,5), b = c(3,4,5,6,7))
    
    df_min = df %>% filter(a>2) %>% mutate(a=a*10)
    
    class(df_min)
    df_min
    

    你可以阅读mutateherehere的一些例子

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-18
      • 1970-01-01
      • 1970-01-01
      • 2020-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      相关资源
      最近更新 更多