[英]How can I divide positive elements of a data frame by a specific data frame column and negative elements by another?
如何將數據幀行的正值除以特定列,將同一數據幀行的負值除以另一特定列?
例如:我需要將第一行的所有值都除以“資產”列,因為它們都是正數。
在第二行上,所有值都需要按“資產”列進行划分,但是要與“行”列關聯的值,因為它是該行的唯一負值。
有什么建議么?
假設數據幀是df
。 然后,以下應該做您想要的:
apply(df, FUN=function(x) ifelse(x > 0, x / df$Assets, x / df$Whatever), MARGIN=2)
遍歷所有列( apply
MARGIN=2
)並將給定的函數應用於所有列。 在每一列中,正條目除以Assets
列中的對應值,非正值除以Whatever
列中的對應值。
例:
> df <- data.frame(Profit=c(1000,-1000,2000,-2000),
Assets=c(1,2,3,4), Whatever=c(-10,-20,-30,-40))
> df
Profit Assets Whatever
1 1000 1 -10
2 -1000 2 -20
3 2000 3 -30
4 -2000 4 -40
> apply(df, FUN=function(x) ifelse (x > 0, x / df$Assets,
x / df$Whatever), MARGIN=2)
Profit Assets Whatever
[1,] 1000.0000 1 1
[2,] 50.0000 1 1
[3,] 666.6667 1 1
[4,] 50.0000 1 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.