我想在R中执行一个简单的任务。我想在尚未分配给任何变量的对象上调用方法。 像这样:
a <- c(5, 2, 11, 3)
b <- order(a, decreasing = TRUE)[1:floor(0.1 * length(.))]
所以我想我想找到在这里传递给length函数的内容。我知道我可以这样执行:
a <- c(5, 2, 11, 3)
b <- order(a, decreasing = TRUE)
b <- b[1:floor(0.1 * length(b))]
但是我想像上面写的那样。
答案 0 :(得分:1)
据我所知,没有一种实现方法可以实现比基本代码更高的效率
a <- c(5, 2, 11, 3)
b <- order(a, decreasing = TRUE)
b[1:floor(0.1 * length(b))]
但是,使用magrittr
,dplyr
或类似的程序包(可以进行管道调用)可以实现与您所要求的功能类似的功能。这看起来类似于
a <- c(5, 2, 11, 3)
c <- a %>% order(., decreasing = TRUE) %>% .[1:floor(0.1 * length(.))]
identical(b[1:floor(0.1 * length(b))],c)
[1] TRUE