gpt4 book ai didi

R 按组识别数据帧更改模式

转载 作者:行者123 更新时间:2023-12-01 23:23:35 25 4
gpt4 key购买 nike

我有一个如下所示的数据框:

person   year   location     salary
Harry 2002 Los Angeles $2000
Harry 2006 Boston $3000
Harry 2007 Los Angeles $2500
Peter 2001 New York $2000
Peter 2002 New York $2300
Lily 2007 New York $7000
Lily 2008 Boston $2300
Lily 2011 New York $4000
Lily 2013 Boston $3300

我想在人的层面上识别一个模式。我想知道谁搬出某个位置并稍后回来。例如,Harry 搬出洛杉矶,稍后又回来了。莉莉搬出纽约,后来又回来了。同样对于莉莉,我们可以说她也搬出了波士顿,后来又回来了。我只对谁有这个图案感兴趣,并不关心来回的数量。因此,理想情况下,输出可能如下所示:

   person   move_back (yes/no)
Harry 1
Peter 0
Lily 1

最佳答案

data.table rleid 的帮助下,你可以做到 -

library(dplyr)

df %>%
arrange(person, year) %>%
group_by(person) %>%
mutate(val = data.table::rleid(location)) %>%
arrange(person, location) %>%
group_by(location, .add = TRUE) %>%
summarise(move_back = any(val != lag(val, default = first(val)))) %>%
summarise(move_back = as.integer(any(move_back)))

# person move_back
# <chr> <int>
#1 Harry 1
#2 Lily 1
#3 Peter 0

关于R 按组识别数据帧更改模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67612917/

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