2016-01-21 93 views
0

我会尽力解释我需要帮助的。R减少代码格式

例子:我想补充一个设计参数对我的数据框"transactionTableMergeCost"
这是我尝试这样做:(?这样的事情)

transactionTableMergeCost$roi<-(transactionTableMergeCost$revenue-transactionTableMergeCost$spend)/transactionTableMergeCost$spend 

此代码可缩短

transactionTableMergeCost-> 
@this$roi<-(@this$revenue - @this$spend)/@this$spend 

或者是最短的一种可能的第一种方式?

+7

尝试使用'?'或'?transform' - 例如'transactionTableMergeCost < - 变换(transactionTableMergeCost,roi =(收入 - 花费)/花费)'。或者尝试'data.table'包,当在data.table对象上安装和操作时,可以执行诸如transactionTableMergeCost [,roi:=(收入 - 支出)/花费]] – thelatemail

+3

或者你的数据更短。 'transactionTableMergeCost'很长。也许'tTMC' –

回答

0

with()是去IMO最简单的方法...并使用较短的名称不会伤害!

tbl <- data.frame(revenue=rnorm(n = 10, mean = 10000, sd = 1000), 
        spend=rnorm(n = 10, mean = 9000, sd = 1000)) 
tbl$roi <- with(data = tbl, expr = (revenue-spend)/spend) 
tbl 
    revenue  spend   roi 
1 10900.029 8286.808 0.31534715 
2 8998.217 11095.703 -0.18903590 
3 10204.678 9394.989 0.08618313 
4 10218.754 9365.915 0.09105775 
5 9147.773 8023.789 0.14008150 
6 9573.119 8538.044 0.12123093 
7 8991.229 10439.290 -0.13871259 
8 11588.986 9844.280 0.17723050 
9 9535.081 9055.307 0.05298270 
10 10280.902 8352.768 0.23083772