我正在建立一个基于年份的功能运行通胀调整。我的功能就像
cci <- function(cost, year){
switch(year,
'2009' = cost,
'2010' = cost/1.01298,
'2011' = cost/1.0455,
'2012' = cost/1.07334,
'2013' = cost/1.10387,
'2014' = cost/1.13042,
'2015' = cost/1.16645)
}
如果我提供一组数据,例如cci(100, '2010')
,它可以正常工作。但是我想把它运行到矢量,比如
Cost Year
1 100 2010
2 300 2015
3 222 2012
上升错误说switch()EXPR只能是1的长度。
我尝试了sapply()但是它给我一张桌子。
cci <- function(cost, year){
sapply(year, switch,
'2009' = cost,
'2010' = cost/1.01298,
'2011' = cost/1.0455,
'2012' = cost/1.07334,
'2013' = cost/1.10387,
'2014' = cost/1.13042,
'2015' = cost/1.16645)
}
R> cci(c(100,200), c('2010', '2011'))
2010 2011
[1,] 98.72 95.65
[2,] 197.44 191.30
我想要一个计算器。
谢谢,快乐万圣节!
答案 0 :(得分:0)
mapply完成这项工作,感谢评论中的铺位。
mapply(cci,cost = c(100,200),year = c('2010','2011'))