Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按值对列表排序,同时保留R中的数字键_R - Fatal编程技术网

按值对列表排序,同时保留R中的数字键

按值对列表排序,同时保留R中的数字键,r,R,我知道这是一个常见的问题,但是由于数字键的原因,r[order(unlist(r))]的常见答案不起作用。经过一段时间的搜索,我找不到任何答案。我确实看到了,但它使用了数据帧,我不知道如何在我的函数中实现数据帧 我有一个使用r[[I]]创建的值列表,不知道为什么您希望使用列表而不是向量。 使用以下虚拟变量,请尝试: > r [[1]] [1] 1 [[2]] [1] 10 [[3]] [1] 2 [[4]] [1] 4 [[5]] [1] 3 setNames(r[order(u

我知道这是一个常见的问题,但是由于数字键的原因,
r[order(unlist(r))]
的常见答案不起作用。经过一段时间的搜索,我找不到任何答案。我确实看到了,但它使用了数据帧,我不知道如何在我的函数中实现数据帧


我有一个使用r[[I]]创建的值列表,不知道为什么您希望使用
列表
而不是
向量
。 使用以下虚拟变量,请尝试:

> r
[[1]]
[1] 1

[[2]]
[1] 10

[[3]]
[1] 2

[[4]]
[1] 4

[[5]]
[1] 3

setNames(r[order(unlist(r))],order(unlist(r)))
$`1`
[1] 1

$`3`
[1] 2

$`5`
[1] 3

$`4`
[1] 4

$`2`
[1] 10

“数字键”只是列表中的索引。要在已排序的列表中保留原始索引,只需根据这些原始索引向列表元素添加名称即可

例如:

r=list(439675063402608449058565676146)
#>r
#[[1]]
#[1] 4396750
#
#[[2]]
#[1] 6340260
# 
#[[3]]
#[1] 8449058
#
#[[4]]
#[1] 5676146  

名称(r)您是否在寻找
顺序(未列出(r))[1:3]
?我建议使用更有意义的列表名称。或者将其放在带有“id”列和“value”列的数据框中。如果您没有显示其他列表组件,可能会显示一个
list
列。出于某种原因,它对我不起作用,但另一个答案起作用。它是
stats
包的一部分,可能您的全球环境中没有它?
knnacc <- function(e){
  dist = list()
  for(j in 1:10000) {
    dist[[j]] <- distance(TEST[["image"]][[e]], TRAIN[["image"]][[j]])
  }
  #dist <- dist[order(unlist(dist))]
  return(dist)
}
> r
[[1]]
[1] 1

[[2]]
[1] 10

[[3]]
[1] 2

[[4]]
[1] 4

[[5]]
[1] 3

setNames(r[order(unlist(r))],order(unlist(r)))
$`1`
[1] 1

$`3`
[1] 2

$`5`
[1] 3

$`4`
[1] 4

$`2`
[1] 10
r = list(4396750, 6340260, 8449058, 5676146)
#> r
#[[1]]
#[1] 4396750
#
#[[2]]
#[1] 6340260
# 
#[[3]]
#[1] 8449058
#
#[[4]]
#[1] 5676146  

names(r) <- as.character(1:length(r))

r <- r[order(unlist(r))]

#> r
#$`1`
#[1] 4396750
#
#$`4`
#[1] 5676146
#
#$`2`
#[1] 6340260
#
#$`3`
#[1] 8449058