所以我试图学习如何使用dplyr,一些基本程序正在逃避我。
例如,以下内容非常简单,但我不知道如何在一个步骤中在dplyr中复制它。
my_data <- with(mtcars, data.frame( cylinders = cyl[cyl == 6],
twice_weight = wt[cyl == 6]*2))
我可以使用mutate()创建变量two_weight,然后使用select()将结果子集化,但这看起来很麻烦。
谢谢!
答案 0 :(得分:4)
也可以这样做:
filter(mtcars, cyl == 6) %>%
transmute(cylinders = cyl, twice_weight = wt*2)
# cylinders twice_weight
#1 6 5.24
#2 6 5.75
#3 6 6.43
#4 6 6.92
#5 6 6.88
#6 6 6.88
#7 6 5.54
.. transmute
删除除了在其中显式调用的列以及对变量进行分组之外的所有列。
答案 1 :(得分:2)
尝试
library(dplyr)
mtcars %>%
filter(cyl==6) %>%
mutate(twice_weight=wt*2) %>%
select(cylinders=cyl, twice_weight)
# cylinders twice_weight
#1 6 5.24
#2 6 5.75
#3 6 6.43
#4 6 6.92
#5 6 6.88
#6 6 6.88
#7 6 5.54