gpt4 book ai didi

r - 将数据切片成单独的数据框

转载 作者:行者123 更新时间:2023-12-04 12:11:07 25 4
gpt4 key购买 nike

我有一个数据框:

entry_df <- data.frame(date = seq(as.Date("2018/01/01"), as.Date("2018/01/07"), 
"days"),diff = c(1,0,-1 , 0,0 ,1,-1))

entry_df

date diff
1 2018-01-01 1
2 2018-01-02 0
3 2018-01-03 -1
4 2018-01-04 0
5 2018-01-05 0
6 2018-01-06 1
7 2018-01-07 -1

我要 rbind 1 之间的行和 -1dataframe并将其推到 list .

脚步:
  • 2018-01-01等于 1所以这将是我的数据框的第一个元素2018-01-02等于 0所以我需要将它绑定(bind)到第一个数据帧2018-01-03等于 -1所以我需要将它绑定(bind)到第一个数据帧,这将构成列表的第一个元素
  • 2018-01-042018-01-05等于 0所以我什么都不做...
  • 2018-01-06等于 1所以我创建了一个数据框,它将是它的第一个元素。 2018-01-07等于 -1所以我将 rbind 到数据框,这将构成列表的第二个元素

  • 预期的输出是这样的
    output_list[[1]] <- data.frame(date = seq(as.Date("2018/01/01"), 
    as.Date("2018/01/03"), "days"))
    output_list[[2]] <- data.frame(date = seq(as.Date("2018/01/06"),
    as.Date("2018/01/07"), "days"))

    output_list

    [[1]]
    date
    1 2018-01-01
    2 2018-01-02
    3 2018-01-03

    [[2]]
    date
    1 2018-01-06
    2 2018-01-07

    最佳答案

    假设 1 和 -1 的个数相同,得到 == 的行的索引和 which , 然后使用 Map 遍历索引并子集“entry_df”的第一列

    Map(function(i, j) entry_df[i:j, 1, drop = FALSE], 
    which(entry_df$diff == 1), which(entry_df$diff == -1))
    #[[1]]
    # date
    #1 2018-01-01
    #2 2018-01-02
    #3 2018-01-03

    #[[2]]
    # date
    #6 2018-01-06
    #7 2018-01-07

    关于r - 将数据切片成单独的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48762642/

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