如果在管道中使用recode,则会得到一个错误:
df <- df %>%
recode(unit, .missing="g")UseMethod中的错误(“recode”):对类c(‘tbl_df’、'tbl‘、’data.frame‘)的对象没有适用的'recode’方法
如果我把它从管子里拔出来,它就能工作得很好:
df$unit <- recode(df$unit, .missing="g")知道为什么吗?如果可能的话,我想呆在管道里。
发布于 2018-03-16 19:44:07
与dplyr中的dplyr解决方案等价的是在mutate中使用它。
df %>%
mutate(unit = recode(unit, .missing="g"))直接链接recode后的%>%将数据帧作为第一个参数传递给recode,这与recode的参数不一致。第一个参数.x需要是一个向量;与其他一些dplyr函数不同,recode不使用某种非标准的计算魔术将unit解释为df中的列。大多数为直接使用管道而设计的函数都有一个数据框架作为它们的第一个参数和它们的输出。您可以阅读更多关于magrittr以及管道如何工作的这里。
https://stackoverflow.com/questions/49328370
复制相似问题