tac*_*ach 4 arrays sorting tuples r
我有几个元组,我需要根据第二项对它们进行排序.这是一个伪代码:
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
Run Code Online (Sandbox Code Playgroud)
我想得到一个像这样的结果:
[c(3,1.4),c(6,1.4),c(2,1.8),c(8,5.3),c(6,5.4)]
Run Code Online (Sandbox Code Playgroud)
一种方法是使用[然后对它们进行排序并使用该排序进行排序来提取列表中每个组件的第二个元素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)
Run Code Online (Sandbox Code Playgroud)
下一步是提取每个列表组件的第二个元素.我们可以使用它sapply()来应用该[功能.在2下面指的是第二元件.
> sapply(events, `[`, 2)
[1] 1.4 1.8 5.3 1.4 5.4
Run Code Online (Sandbox Code Playgroud)
然后我们可以使用这些第二个元素的排序 order()
> ord <- order(sapply(events, `[`, 2))
> ord
[1] 1 4 2 3 5
Run Code Online (Sandbox Code Playgroud)
然后我们可以使用它来订购列表 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
Run Code Online (Sandbox Code Playgroud)