与数字和taply一起使用时,如何解决由“”引起的错误?R,包装安排

时间:2019-11-05 21:25:47

标签: r tapply

我正在Windows 10中将软件包安排v1.1.5与R v3.5.3一起使用。 而且我认为我发现了一个奇怪的错误,或者我做错了什么。

这正在工作

library(arrangements)
myDF <- data.frame(A=c("a","b","c"), B=c(2000,2000,2002))
tapply(myDF$A,myDF$B, permutations)

$`2000`
     [,1] [,2]
[1,] a    b   
[2,] b    a   
Levels: a b c

$`2002`
     [,1]
[1,] c   
Levels: a b c

但这不起作用:

library(arrangements)
myDF <- data.frame(A=c(200,200,200), B=c(0,0,2))
tapply(myDF$A,myDF$B, permutations)

Error in FUN(X[[i]], ...) : too many results

我做错了什么?
我只想生成由组B定义的A元素的排列。
结果应类似于前面的示例,但用数字而不是字母。

1 个答案:

答案 0 :(得分:3)

?permutations处查看文档。请注意,第一个参数描述为

  

x-整数或向量,如果为整数,则将被视为n;否则,将被视为v

因此,如果您输入数字或因子,则函数的行为会有所不同。如果您希望像第一个示例一样从中提取这些值,则只需将值直接传递到v=参数即可。

tapply(myDF$A, myDF$B, function(x) permutations(v=x))