在管道中乘以一个变量

Multiply a variable in pipe

我是管道 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))更方便更快捷的方式?

更短的选项 data.table

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

更方便的方法如下:

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

您可以阅读 mutate here and here 的一些示例