R语言中如何让命名数值列表排序后返回元素名而非数值
R 向量排序返回元素名的实现方法
问题根源
你原先的代码无法返回元素名,是因为创建Numbers向量时没有为元素绑定名称属性,R不会自动关联你定义的num1~num6变量名和向量中对应位置的数值。
实现代码
num1 <- 2 num2 <- 1 num3 <- 3 num4 <- 7 num5 <- 8 num6 <- 4 Numbers <- c(num1, num2, num3, num4, num5, num6) # 给向量元素绑定对应名称 names(Numbers) <- paste0("num", 1:6) # 按数值降序排序后提取元素名 sorted_names <- names(Numbers[order(Numbers, decreasing = TRUE)]) print(sorted_names)
运行后输出结果为:
[1] "num5" "num4" "num6" "num3" "num1" "num2"
逻辑说明
paste0("num", 1:6)可以批量生成num1到num6的名称字符串,不需要手动逐个输入order(Numbers, decreasing = TRUE)返回数值降序排列对应的元素索引- 用索引提取带名称的向量后,调用
names()函数即可拿到排序后的元素名
内容的提问来源于stack exchange,提问作者Peter
相关产品推荐
相关产品推荐

