首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中群的滞后差

R中群的滞后差
EN

Stack Overflow用户
提问于 2021-01-22 13:35:21
回答 1查看 78关注 0票数 0

是否有方法为每组执行2次手术。示例如下所示

代码语言:javascript
复制
> asd <- data.frame(Cat = c("A","B","B","A","B","A"), Start_num = c(2, 5, 1, 6, 6, 4), End_num = c(3, 7, 4, 7, 8, 5))
> asd
  Cat Start_num End_num
1   A         2       3
2   B         5       7
3   B         1       4
4   A         6       7
5   B         6       8
6   A         4       5

预期产出

代码语言:javascript
复制
Cat Start_num   End_num   True/False
A       2        3        TRUE
A       4        5        TRUE
A       6        7        NA
B       1        4        TRUE
B       5        7        FALSE
B       6        8        NA

因此,基本上,首先我们需要通过Start_num按Cat组的升序对数据进行排序,其次,我们需要创建另一列真假,它告诉第二行的Start_num是否大于第1行的End_num。示例第一行是True,因为对于(4-3)是True,依此类推。但是每只猫的最后记录应该是NA的,因为它在那里结束。有可能取得成功吗?有谁可以帮我?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-22 13:44:14

下一个试试。您可以首先安排,然后使用lead()进行比较并达到预期的输出:

代码语言:javascript
复制
library(dplyr)
#Code
new <- asd %>% arrange(Cat,Start_num) %>%
  group_by(Cat) %>%
  mutate(Var=lead(Start_num)>End_num)

输出:

代码语言:javascript
复制
# A tibble: 6 x 4
# Groups:   Cat [2]
  Cat   Start_num End_num Var  
  <chr>     <dbl>   <dbl> <lgl>
1 A             2       3 TRUE 
2 A             4       5 TRUE 
3 A             6       7 NA   
4 B             1       4 TRUE 
5 B             5       7 FALSE
6 B             6       8 NA   
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65846227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档