gpt4 book ai didi

r - 在 r 中的 unique() 函数中使用管道不起作用

转载 作者:行者123 更新时间:2023-12-03 18:36:21 33 4
gpt4 key购买 nike

我在使用具有独特功能的管道运算符 (%>%) 时遇到了一些麻烦。

df = data.frame(
a = c(1,2,3,1),
b = 'a')

unique(df$a) # no problem here
df %>% unique(.$a) # not working here
# I got "Error: argument 'incomparables != FALSE' is not used (yet)"

任何的想法?

最佳答案

发生的事情是%>%默认情况下,获取左侧的对象并将其提供给函数的第一个参数,然后将提供的其他参数提供给其他参数。下面是一个例子:

df = data.frame(
a = c(1,2,3,1),
b = 'a')

MyFun<-function(x,y=FALSE){
return(match.call())
}
> df %>% MyFun(.$a)
MyFun(x = ., y = .$a)

发生的事情是 %>%正在匹配 dfx.$ay .

所以对于 unique您的代码被解释为:
unique(x=df, incomparables=.$a)
这解释了错误。对于您的情况,您需要拉出 a在您运行独特之前。如果您想继续使用 %>%您可以使用 df %>% .$a %>% unique()但显然还有很多其他方法可以做到这一点。

关于r - 在 r 中的 unique() 函数中使用管道不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49408253/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com