假设我在R中有一个数组:c(10, 7, 4, 3, 8, 2)在排序时,这将是:c(2, 3, 4, 7, 8, 10)在R中返回原始数组中已排序数组元素的索引的最佳方法是什么?我正在寻找这样的输出:6(索引2),4(索引3),3(索引4),2(索引7),5(索引8),1(索引10)
c(10, 7, 4, 3, 8, 2)
c(2, 3, 4, 7, 8, 10)
o3imoua41#
您正在查找的函数是order:
order
> x [1] 10 7 4 3 8 2 > order(x) [1] 6 4 3 2 5 1
字符串
fnatzsnv2#
sort具有index.return参数,默认情况下为FALSE
sort
index.return
FALSE
x <- c(10,7,4,3,8,2) sort(x, index.return=TRUE) #returns a list with `sorted values` #and `$ix` as index. #$x #[1] 2 3 4 7 8 10 #$ix #[1] 6 4 3 2 5 1
字符串您可以通过以下方式提取index:
index
sort(x, index.return=TRUE)$ix #[1] 6 4 3 2 5 1
型
j5fpnvbx3#
如果你想得到which返回的相同的数组索引,你应该使用arrayInd函数:
which
arrayInd
array = matrix(rnorm(36),nrow=6) sortIndex = sort(array, index.return=TRUE)$ix array_indices = arrayInd(sortIndex,dim(array),dimnames(array),useNames = TRUE)
3条答案
按热度按时间o3imoua41#
您正在查找的函数是
order
:字符串
fnatzsnv2#
sort
具有index.return
参数,默认情况下为FALSE
字符串
您可以通过以下方式提取
index
:型
j5fpnvbx3#
如果你想得到
which
返回的相同的数组索引,你应该使用arrayInd
函数:字符串