arrays - 如何在R中制作和排序元组数组

标签 arrays r sorting tuples

我有几个元组,我需要根据第二项对它们进行排序。
这是一个伪代码:

events <- vector(mode = "list", length = 5)
events[[1]] <- c(3,1.4)
events[[2]] <- c(2,1.8)
events[[3]] <- c(8,5.3)
events[[4]] <- c(6,1.4)
events[[5]] <- c(6,5.4)

#sort according to second item in tuple
sort(events)
events

我想得到这样的结果:
[c(3,1.4),c(6,1.4),c(2,1.8),c(8,5.3),c(6,5.4)]

最佳答案

一种方法是使用 [ 提取列表每个组件的第二个元素。然后对它们进行排序并使用该排序对 events 进行排序.

首先,创建您似乎拥有的数据对象:

events <- vector(mode = "list", length = 5)
events[[1]] <- c(3,1.4)
events[[2]] <- c(2,1.8)
events[[3]] <- c(8,5.3)
events[[4]] <- c(6,1.4)
events[[5]] <- c(6,5.4)

下一步是提取每个列表组件的第二个元素。我们可以使用 sapply() 来做到这一点申请 [功能。 2下面指的是第二个元素。
> sapply(events, `[`, 2)
[1] 1.4 1.8 5.3 1.4 5.4

然后我们可以使用 order() 获得这些第二个元素的顺序。
> ord <- order(sapply(events, `[`, 2))
> ord
[1] 1 4 2 3 5

然后我们可以使用它来排序 events 的列表
> events[ord]
[[1]]
[1] 3.0 1.4

[[2]]
[1] 6.0 1.4

[[3]]
[1] 2.0 1.8

[[4]]
[1] 8.0 5.3

[[5]]
[1] 6.0 5.4

关于arrays - 如何在R中制作和排序元组数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9754123/

相关文章:

c++ - 如何为 txt 文件中的每个名称创建一个整数?

javascript - JS方法赋值

C++:从文件中分隔名字和姓氏,用逗号分隔

javascript - 每个循环中的有序 JavaScript Promise

arrays - 如何在 Go 中将任何数据类型转换为字节

r - 在许多列中应用和运行 gsub

r - 使用 Fivethirtyeight ggtheme 将 ylab 添加到 ggplot

r - R 是否可嵌入

java - 我正在尝试读取文本文件并将其存储在对象的数组列表中

c# - 使用 LINQ 在 OrderBy 中自定义排序逻辑