我正在尝试创建一个函数,该函数的输入是一个向量,其中每个元素都是正整数,并返回输入向量的每个元素,该向量是一个立方体数。
这是我迄今为止的代码:
positivecube<- function(x){
b<-round(x^(1/3), digits=6)
b%%1==0 &&
b!=1
return(x[b])
}
我正在努力从最终向量中删除1,并将它们转换回原始的立方体数。任何帮助都会很棒,谢谢
您可以返回x的子集,其中正方根和四舍五入到最近整数的正方根之间的绝对差非常小:
positivecube <- function(x) x[abs(round(x^(1/3)) - x^(1/3)) < 1e-8]
positivecube(1:100)
#> [1] 1 8 27 64