【发布时间】:2015-05-31 02:34:45
【问题描述】:
我有一个如下的数据框。我想取 ww1 列并创建一个新列 newww1 如下:
我的 Excel 公式是
=2012&TEXT((LEFT(201438,4)-2012)*53+RIGHT(201438,2),"0000")
我将在 ww1 列中获得一个值,而不是 201438
我的公式的解释是:
take left 4 characters of ww1
subtract 2012 from them
multiply answer by 53
add answer to right 2 characters of ww1
print answer in "0000" format
concatenate that answer with 2012.
我的数据
PRODUCT=c(rep("A",4),rep("B",2))
ww1=c(201438,201440,201444,201446,201411,201412)
ww2=ww1-6
DIFF=rep(6,6)
DEMAND=rep(100,6)
df=data.frame(PRODUCT,ww1,ww2,DIFF,DEMAND)
df
PRODUCT ww1 ww2 DIFF DEMAND
1 A 201438 201432 6 100
2 A 201440 201434 6 100
3 A 201444 201438 6 100
4 A 201446 201440 6 100
5 B 201411 201405 6 100
6 B 201412 201406 6 100
这就是我的数据最终的样子
PRODUCT ww1 ww2 DIFF DEMAND newww1
1 A 201438 201432 6 100 20120144
2 A 201440 201434 6 100 20120146
3 A 201444 201438 6 100 20120150
4 A 201446 201440 6 100 20120152
5 B 201411 201405 6 100 20120117
6 B 201412 201406 6 100 20120118
【问题讨论】:
-
下面的答案正是您正在寻找的,但这里还有更多选择:stackoverflow.com/questions/15498235/…