簡體   English   中英

如何將數據幀的正元素除以特定數據幀列,將負元素除以另一列?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM