相关疑难解决方法(0)

使用开始日期和结束日期按日期范围展开行

考虑表单的数据框架

       idnum      start        end
1993.1    17 1993-01-01 1993-12-31
1993.2    17 1993-01-01 1993-12-31
1993.3    17 1993-01-01 1993-12-31
Run Code Online (Sandbox Code Playgroud)

startend类型Date

 $ idnum : int  17 17 17 17 27 27
 $ start : Date, format: "1993-01-01" "1993-01-01" "1993-01-01" "1993-01-01" ...
 $ end   : Date, format: "1993-12-31" "1993-12-31" "1993-12-31" "1993-12-31" ...
Run Code Online (Sandbox Code Playgroud)

我想创建一个新的数据帧,而不是每行的每月观察,中间的每个月startend(包括边界):

期望的输出

idnum       month
   17  1993-01-01
   17  1993-02-01
   17  1993-03-01
...
   17  1993-11-01
   17  1993-12-01
Run Code Online (Sandbox Code Playgroud)

我不确定month应该采用什么格式,我会在某些时候想要分组idnum,month以便对其余数据集进行回归. …

r

24
推荐指数
5
解决办法
7837
查看次数

如何在R中重复观察n次?

我正在尝试将一个变量记录到一个年度数据集中,该变量每单位记录一次。虽然重复观察n次非常简单,但是我很难为观察分配数年。

我的数据结构如下:

id startyear endyear dummy
1  1946      2005    1
2  1957      2005    1
3  1982      2005    1
4  1973      2005    1
Run Code Online (Sandbox Code Playgroud)

我想做的是创建一个名为的新行years,该行重复1 n = 2005 - 1946 = 59次;单位2 2005-1957次,以此类推并指定年份,从而产生以下输出:

id startyear endyear dummy year
1  1946      2005    1     1946
1  1946      2005    1     1947
1  1946      2005    1     1948
1  1946      2005    1     1949
[…]
Run Code Online (Sandbox Code Playgroud)

我试图使用slicemutate在dplyr,结合repseq,但没有给我我想要的结果。任何帮助将不胜感激。

r repeat dplyr

3
推荐指数
1
解决办法
94
查看次数

R - 按组将日期范围扩展为面板数据

我有日期范围,由两个变量(idtype)分组,这两个变量当前存储在一个名为的数据框中data.我的目标是扩展日期范围,以便我在日期范围内每天都有一行,其中包括相同的idtype.

以下是重现数据框示例的代码段:

data <- structure(list(id = c(1, 1, 1, 1, 1, 2, 2, 2, 2, 2), type = c("a", 
"a", "b", "c", "b", "a", "c", "d", "e", "f"), from = structure(c(1235199600, 
1235545200, 1235545200, 1235631600, 1235631600, 1242712800, 1242712800, 
1243058400, 1243058400, 1243231200), class = c("POSIXct", "POSIXt"
), tzone = ""), to = structure(c(1235372400, 1235545200, 1235631600, 
1235890800, 1236236400, 1242712800, 1243058400, 1243231200, 1243144800, 
1243576800), class = c("POSIXct", "POSIXt"), tzone = "")), .Names = c("id", …
Run Code Online (Sandbox Code Playgroud)

r date seq

2
推荐指数
1
解决办法
1298
查看次数

如何根据值扩展数据框?

我有以下输入数据框:

df <- data.frame(x=c('a','b','c'),y=c(4,5,6),from=c(1,2,3),to=c(2,4,6))  
df
  x y  from to
1 a 4  1    2
2 b 5  2    4
3 c 6  3    6
Run Code Online (Sandbox Code Playgroud)

现在我想扩展每一行,从和之间的值,即('a',4)跨越两行,即1,2.预期结果如下所示:

exp <- data.frame(x=c('a','a','b','b','b','c','c','c','c'),
                  y=c(4,4,5,5,5,6,6,6,6),
                  z=c(1,2,2,3,4,3,4,5,6))
exp
  x y z
1 a 4 1
2 a 4 2
3 b 5 2
4 b 5 3
5 b 5 4
6 c 6 3
7 c 6 4
8 c 6 5
9 c 6 6
Run Code Online (Sandbox Code Playgroud)

在没有循环的情况下实现这一目标的最惯用的方法是什么?

r dataframe

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

标签 统计

r ×4

dataframe ×1

date ×1

dplyr ×1

repeat ×1

seq ×1