2016-01-21 89 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