Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何计算一个人访问国家的顺序?_R_Vector_Dataframe - Fatal编程技术网

R 如何计算一个人访问国家的顺序?

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 ___ __

我有一个数据帧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
   ___      _____    ____
    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的解决方案