使用 dplyr 库的 R 管道 运行 代码出错

Error in running code with R pipeline using dplyr library

我正在处理一个数据集(奥运会),我想创建一个具有特定条件的 sub_dataset。为此,我使用了 dplyr 库并且代码有效。问题是,如果我使用 %>% 更改代码以使其更具可读性,它就不再起作用了。我已粘贴以下代码:

combination <- select(olympics, Sex, Season, Sport)

M_Summer <- combination %>%
  filter(Sex == "M", Season == "Summer") %>%
  mutate(Num_Sports = length(unique(M_Summer[["Sport"]]))) %>%
  select(-c(Sport))

如果我 运行 上面的代码,R 会显示此错误消息:

Error in mutate_impl(.data, dots): Evaluation error: object 'M_Summer' not found.

感谢您的帮助!

您正在尝试在尚未创建的管道中使用数据框,因此出现错误。我们需要将代码分成两部分,以便代码的第一部分将创建数据框,而代码的第二部分将使用第一部分创建的数据框。

M_Summer <- combination %>%
filter(Sex == "Men", Season == "Summer")
####Break the code    
M_Summer <-M_Summer %>% mutate(Num_Sports = length(unique(M_Summer$Sport))) %>%
select(-c(Sport))

请求您提供数据的 head(df) 或可重现的示例以获得更准确的代码。如果您有任何疑问,请告诉我。

如果没有更多信息,很难具体说明,但您正在尝试在制作数据框的函数中使用 M-Summer 数据框。 最好的选择可能是将它分成两个命令;

M_Summer <- combination %>%
  filter(Sex == "M", Season == "Summer") 
M_Summer <- mutate(Num_Sports = length(unique(M_Summer[["Sport"]]))) %>%
  select(-c(Sport))

基本上,在实际创建数据框之前,您不能引用它。