gpt4 book ai didi

r - 选择匹配列单元格序列下方的 n 个单元格

转载 作者:行者123 更新时间:2023-12-04 11:50:59 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Get indexes of a vector of numbers in another vector

(10 个回答)


上个月关闭。




我需要选择 n匹配列序列下方的单元格。让我们假设 n = 2并且具体的列顺序是A、B、C。在这个顺序之后,我想在这个顺序下面再挑两个单元格。我的表是:

Table1 <- data.frame(ID=rep(c(1 ,2  ,3  ,4  ,5  ,6  ,7  ,8  ,9  ,10 ,11 ,12 ,13 ,14 ,15 ,16 ,17 ,18 ,19 ,20 ,21 ,22 ,23 ,24 ,25 ,26 ,27 ,28 ,29 ,30 ,31)), Sequence=rep(c("A",  "B",    "D",    "E",    "A",    "B",    "C",    "f",    "n",    "p",    "C",    "D",    "D",    "E",    "A",    "B",    "C",    "z",    "t",    "g",    "A",    "C",    "D",    "A",    "B",    "C",    "p",    "l",    "x",    "v",    "A")))
我喜欢有这个表:
Table2 <- data.frame(ID=rep(c(1 ,2  ,3  ,4  ,5  ,6  ,7  ,8  ,9  ,10 ,11 ,12 ,13 ,14 ,15 ,16 ,17 ,18 ,19 ,20 ,21 ,22 ,23 ,24 ,25 ,26 ,27 ,28 ,29 ,30 ,31)), Sequence=rep(c("A",  "B",    "D",    "E",    "A",    "B",    "C",    "f",    "n",    "p",    "C",    "D",    "D",    "E",    "A",    "B",    "C",    "z",    "t",    "g",    "A",    "C",    "D",    "A",    "B",    "C",    "p",    "l",    "x",    "v",    "A")), Selected=rep(c("",   "", "", "", "A",    "B",    "C",    "f",    "n",    "", "", "", "", "", "A",    "B",    "C",    "z",    "t",    "", "", "", "", "A",    "B",    "C",    "p",    "l",    "", "", "")))
你能帮我解决这个问题吗?

最佳答案

另一种解决方案是根据模式进行子集化并合并以创建结果列,即

library(dplyr)
idx <- which(Table1$Sequence == "A" & lead(Table1$Sequence) == "B" & lead(Table1$Sequence, n = 2) == "C")
idx <- c(sapply(idx, function(i)seq(i, i+4)))
merge(Table1, Table1[idx,], by = 'ID', all = TRUE)

ID Sequence.x Sequence.y
1 1 A <NA>
2 2 B <NA>
3 3 D <NA>
4 4 E <NA>
5 5 A A
6 6 B B
7 7 C C
8 8 f f
9 9 n n
10 10 p <NA>
11 11 C <NA>
12 12 D <NA>
13 13 D <NA>
14 14 E <NA>
15 15 A A
16 16 B B
17 17 C C
18 18 z z
19 19 t t
20 20 g <NA>
21 21 A <NA>
22 22 C <NA>
23 23 D <NA>
24 24 A A
25 25 B B
26 26 C C
27 27 p p
28 28 l l
29 29 x <NA>
30 30 v <NA>
31 31 A <NA>

关于r - 选择匹配列单元格序列下方的 n 个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69074327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com