我正在研究数据集(奥运会),我想创建一个具有特定条件的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.
感谢您的帮助!
答案 0 :(得分:0)
您正在尝试在尚未创建的管道中使用数据框,因此会出现错误。我们需要将代码分为两部分,以便代码的第一部分将创建数据框架,而代码的第二部分将使用由第一部分创建的数据框架。
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))
要求您提供数据的抬头(df)或可复制的示例,以获取更准确的代码。如果您有任何疑问,请告诉我。
答案 1 :(得分:0)
在没有更多信息的情况下很难具体说明,但是您试图在制作数据框的函数中使用M-Summer数据框。 最好的选择可能是将其分为两个命令;
M_Summer <- combination %>%
filter(Sex == "M", Season == "Summer")
M_Summer <- mutate(Num_Sports = length(unique(M_Summer[["Sport"]]))) %>%
select(-c(Sport))
基本上,只有在实际创建数据框之后,才能引用该数据框。