将data.table语法转换为dplyr语法

问题描述 投票:2回答:1

我想以dplyr的方式从data.table获得以下代码:

library(tidyverse)
library(data.table)

Iris <- as.data.table(iris)

Iris[, .(m = mean(Sepal.Width[Sepal.Width < 3])), Species]

这是我到目前为止所拥有的:

Iris %>% 
  group_by(Species) %>% 
  summarise(m = mean(Sepal.Width))

但是我不知道可以在哪里放置条件Sepal.Width < 3

r dplyr data.table tidyverse
1个回答
5
投票

[与data.tablebase R中的方法相同,创建逻辑向量(Sepal.Width < 3),使用该逻辑向量将列与[子集并获得值子集的mean] >

library(dplyr)
Iris %>% 
  group_by(Species) %>%
  summarise(m = mean(Sepal.Width[Sepal.Width <3]))
# A tibble: 3 x 2
#  Species        m
#  <fct>      <dbl>
#1 setosa      2.60
#2 versicolor  2.61
#3 virginica   2.69
© www.soinside.com 2019 - 2024. All rights reserved.