小编Slu*_*urp的帖子

列表中每个数据帧的最长更改行

我有一个多个数据帧的列表,每个数据帧包含一串日期,对于每个日期,+1表示增加或-1表示减少.

这是一个例子

security1 <- data.frame(
    date = seq(from =as.Date('2019-01-01'), to = as.Date('2019-01-10'), by = 'day'),
    direction = c(1, 1, 1, -1, -1, 1, 1, 1, 1, -1))
security2 <- data.frame(
    date = seq(from =as.Date('2019-01-01'), to = as.Date('2019-01-10'), by = 'day'),
    direction = c(1, -1, 1, -1, -1, 1, 1,- 1, 1, -1))
clcn <- list(Sec1 = security1, Sec2 = security2)
Run Code Online (Sandbox Code Playgroud)

对于每个数据帧,我试图找到最近一串更改的长度,以及上次数字大于此时的长度.如果前一天的移动是另一个方向,那么目前的连胜可能只是1天.

我已经搜索了几天的答案,并在数据框中的Compute计数变量中找到了以下使用序列和rle的单个数据

sequence(rle(as.character(data$list))$lengths)
Run Code Online (Sandbox Code Playgroud)

但我正在努力将其提供给lapply或map以使其迭代列表.

我不介意确切的输出,但理想情况下它包括:数据帧名称,当前条纹,前一个条纹更长,以及条纹结束的日期.但在最基本的情况下,只需将序列号添加为数据框中的新列将是一个巨大的帮助,我可以(尝试)从那里获取它.

r list dataframe

5
推荐指数
1
解决办法
53
查看次数

标签 统计

dataframe ×1

list ×1

r ×1