R 如何计算一个人访问国家的顺序?
我有一个数据帧df,如下所示:R 如何计算一个人访问国家的顺序?,r,vector,dataframe,R,Vector,Dataframe,我有一个数据帧df,如下所示: id country_id __ _______ 1 01 1 02 1 03 2 01 2 04 2 05 3 06 3 08 3 09 3 10 这显示了每个人是如何去哪个国家的。从这里我需要有这样的东西 id from to ___ __
id country_id
__ _______
1 01
1 02
1 03
2 01
2 04
2 05
3 06
3 08
3 09
3 10
这显示了每个人是如何去哪个国家的。从这里我需要有这样的东西
id from to
___ _____ ____
1 01 02
1 02 03
1 03 NA
2 01 04
2 04 05
2 05 06
3 06 NA
3 08 09
3 09 10
3 10 NA
我可以做df[-1],它给出了没有top的整个向量,然后cbind它,但是如何在每个id的最后一个条目上做NA呢?非常感谢您的帮助。我们可以通过获取第二列的标题(按“id”分组)来实现这一点
library(dplyr)
df1 %>%
group_by(id) %>%
transmute(from = country_id, to= lead(from))
# A tibble: 10 x 3
# Groups: id [3]
# id from to
# <int> <chr> <chr>
# 1 1 01 02
# 2 1 02 03
# 3 1 03 <NA>
# 4 2 01 04
# 5 2 04 05
# 6 2 05 <NA>
# 7 3 06 08
# 8 3 08 09
# 9 3 09 10
#10 3 10 <NA>
我们可以通过获取第二列的前导(按“id”分组)来实现这一点
library(dplyr)
df1 %>%
group_by(id) %>%
transmute(from = country_id, to= lead(from))
# A tibble: 10 x 3
# Groups: id [3]
# id from to
# <int> <chr> <chr>
# 1 1 01 02
# 2 1 02 03
# 3 1 03 <NA>
# 4 2 01 04
# 5 2 04 05
# 6 2 05 <NA>
# 7 3 06 08
# 8 3 08 09
# 9 3 09 10
#10 3 10 <NA>
这是一个带有data.table的解决方案
这是一个带有data.table的解决方案