R 如何将数据帧的正元素除以特定的数据帧列,将负元素除以另一列?

R 如何将数据帧的正元素除以特定的数据帧列,将负元素除以另一列?,r,dataframe,R,Dataframe,如何将数据帧行的正值除以一个特定列,将同一数据帧行的负值除以另一个特定列 我需要将第一行的所有值除以“资产”列,因为它们都是正数 在第二行,所有值都需要被“资产”列分割,但与列“行”关联的值除外,因为它是行中唯一的负值 有什么建议吗?假设数据帧是df。然后,应按照您的要求执行以下操作: apply(df, FUN=function(x) ifelse(x > 0, x / df$Assets, x / df$Whatever), MARGIN=2) 它迭代所有列(apply中的MARG

如何将数据帧行的正值除以一个特定列,将同一数据帧行的负值除以另一个特定列

我需要将第一行的所有值除以“资产”列,因为它们都是正数

在第二行,所有值都需要被“资产”列分割,但与列“行”关联的值除外,因为它是行中唯一的负值


有什么建议吗?

假设数据帧是
df
。然后,应按照您的要求执行以下操作:

apply(df, FUN=function(x) ifelse(x > 0, x / df$Assets, x / df$Whatever), MARGIN=2)
它迭代所有列(
apply
中的
MARGIN=2
),并将给定函数应用于所有列。在每一列中,正值分录除以
资产
列中的相应值,非正值分录除以
任意
列中的相应值

例如:

> 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
>测向
利润资产
1   1000      1      -10
2  -1000      2      -20
3   2000      3      -30
4  -2000      4      -40
>应用(df,FUN=函数(x)ifelse(x>0,x/df$资产,
x/df$任意值),保证金=2)
利润资产
[1,] 1000.0000      1        1
[2,]   50.0000      1        1
[3,]  666.6667      1        1
[4,]   50.0000      1        1

假设数据帧是
df
。然后,应按照您的要求执行以下操作:

apply(df, FUN=function(x) ifelse(x > 0, x / df$Assets, x / df$Whatever), MARGIN=2)
它迭代所有列(
apply
中的
MARGIN=2
),并将给定函数应用于所有列。在每一列中,正值分录除以
资产
列中的相应值,非正值分录除以
任意
列中的相应值

例如:

> 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
>测向
利润资产
1   1000      1      -10
2  -1000      2      -20
3   2000      3      -30
4  -2000      4      -40
>应用(df,FUN=函数(x)ifelse(x>0,x/df$资产,
x/df$任意值),保证金=2)
利润资产
[1,] 1000.0000      1        1
[2,]   50.0000      1        1
[3,]  666.6667      1        1
[4,]   50.0000      1        1
请查看并更新您的问题请查看并更新您的问题