gpt4 book ai didi

r - 如何在 data.frame 中找到元素的第一次和最后一次出现?

转载 作者:行者123 更新时间:2023-12-03 20:21:17 24 4
gpt4 key购买 nike

我已经详尽地搜索了 FIRST 的直接 R 翻译。最后。 SAS DATA 步骤中的指针,但似乎找不到。对于那些不熟悉 SAS 的人,首先。是一个 bool 值,用于标识给定元素在表中的第一次出现和最后一次出现。是一个 bool 值,用于标识最后一次出现。例如,考虑以下排序表:

V1    V2    V3
1 1 1
1 1 2
1 2 3
1 2 4
2 3 5
2 3 6
2 4 7
2 4 8
3 5 9
3 5 10
3 6 11
3 6 12

因为 SAS DATA 步骤逐行读取表,所以我可以使用如下语句:
IF FIRST.V1 THEN DO ...

当且仅当这是第一次在 V1 中遇到观察时,FIRST.V1 才会返回 TRUE。换句话说,对于 V1[1]('1' 的第一次出现)、V1[5]('2' 的第一次出现)和 V1[9]('3' 的第一次出现),它将返回 true )。最后。指针以类似的方式起作用,但具有该元素的最终外观。

有什么R 模仿这个?

最佳答案

您可以使用 duplicated 和 rev (对于 LAST)来执行此操作:

> v1=c(1,1,1,2,2,3,3,3,3,4,4,5)

> data.frame(v1,FIRST=!duplicated(v1),LAST=rev(!duplicated(rev(v1))))
v1 FIRST LAST
1 1 TRUE FALSE
2 1 FALSE FALSE
3 1 FALSE TRUE
4 2 TRUE FALSE
5 2 FALSE TRUE
6 3 TRUE FALSE
7 3 FALSE FALSE
8 3 FALSE FALSE
9 3 FALSE TRUE
10 4 TRUE FALSE
11 4 FALSE TRUE
12 5 TRUE TRUE

关于r - 如何在 data.frame 中找到元素的第一次和最后一次出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11546684/

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