R 正在尝试选择250个最低术语

R 正在尝试选择250个最低术语,r,function,sorting,R,Function,Sorting,我正在尝试创建一个函数,它接受一个集合列表,并选择前250个最低的术语。但是,当我运行完整的代码时,出现了一个错误,因此我认为错误可能在函数中的某个位置,以选择最低的术语 代码如下: selFun <- function(x) {x == (order(x, decreasing = FALSE)[1:250]) } 您可以使用order作为 selFun <- function(x) { x <- x[order(x, decreasing = FALSE)[1:25

我正在尝试创建一个函数,它接受一个集合列表,并选择前250个最低的术语。但是,当我运行完整的代码时,出现了一个错误,因此我认为错误可能在函数中的某个位置,以选择最低的术语

代码如下:

selFun <- function(x) 
{x == (order(x, decreasing = FALSE)[1:250])
}

您可以使用
order
作为

selFun <- function(x) {
  x <- x[order(x, decreasing = FALSE)[1:250]]
  x
}
提取最低的250个值


注意:您在Q中使用了
x==…
。要为x赋值,请使用
您还可以使用dplyr包和
排列
。我非常喜欢dplyr软件包:

arrange(iris, Petal.Length)[1:10, ]

我想你想要的是
rank
而不是
order
我想要前250名被标记为true,其余的被标记为false,这就是为什么我使用==。但是,只有一个是真的。我想这样说,我明白了,不过我想我添加了一个例子,以符合您所寻找的逻辑方法。如果它满足你的需要,你可以接受这个答案。
selFun <- function(x) {
  x <- sort(x, decreasing = FALSE)[1:250]
  x
}
x <- 10:1
selFun(x)
# [1] 1 2 3 4 5
x %in% selFun(x)
# [1] FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE
arrange(iris, Petal.Length)[1:10, ]