我有一个看起来像这样的数据框
co_code company_name year week returns
1 A 2008 40 0.45
1 A 2008 41 0.33
1 A 2008 42 0.31
.
.
.
2 B 2002 01 0.22
2 B 2002 02 0.32
.
.
.
以此类推。年份和星期因公司而异。
我想要一个单独的列来替换日期和年份。这里的日期应该是一周的最后一天
输出应该看起来像这样
co_code company_name date returns
1 A 2008-10-11 0.45
1 A 2008-10-18 0.33
1 A 2008-10-25 0.31
.
.
.
2 B 2002-01-07 0.22
2 B 2002-01-14 0.32
注意:-此更改不应影响数据框的顺序。行不应该被打扰
答案 0 :(得分:2)
您可以使用此-
library(data.table)
setDT(dt)[,date:=as.Date(paste(year, week, 6, sep="-"), "%Y-%U-%u")]
输出-
co_code company_name year week returns date
1: 1 A 2008 40 0.45 2008-10-11
2: 1 A 2008 41 0.33 2008-10-18
3: 1 A 2008 42 0.31 2008-10-25
输入数据-
dt <- read.table(text="co_code company_name year week returns
1 A 2008 40 0.45
1 A 2008 41 0.33
1 A 2008 42 0.31",header=T)
注意-我已经使用6th
一周中的某天来匹配所需的输出。但是,我们可以将其更改为所需的任何内容。