R 满足条件时数据帧的列总和

R 满足条件时数据帧的列总和,r,sum,R,Sum,我想创建一个新列,它将是现有列中唯一正值的总和。因此,在TotalImportSE3列中,我想获得SE3-NO1、SE3-DK1、SE3-FI、SE3-SE4列的和,如果它们中没有一个是正值,那么和应该是0 SE3 - NO1 SE3 - DK1 SE3 - FI SE3 - SE2 SE3 - SE4 TotalImportSE3 47 1114 666 -225 2716 -3784 NA 48

我想创建一个新列,它将是现有列中唯一正值的总和。因此,在TotalImportSE3列中,我想获得SE3-NO1、SE3-DK1、SE3-FI、SE3-SE4列的和,如果它们中没有一个是正值,那么和应该是0

      SE3 - NO1 SE3 - DK1 SE3 - FI SE3 - SE2 SE3 - SE4 TotalImportSE3
 47      1114       666     -225      2716     -3784             NA
 48      1009       671     -151      1491     -2943             NA
 54      1057       711    -1062      1658     -2201             NA
 55      1077       711    -1213      3492     -3015             NA
 94       772       414     -501      2904     -2262             NA
 95      -786      -314     -407     -2368     -2005             NA
输出应如下所示:

      SE3 - NO1 SE3 - DK1 SE3 - FI SE3 - SE2 SE3 - SE4 TotalImportSE3
 47      1114       666     -225      2716     -3784             4496
 48      1009       671     -151      1491     -2943             3171
 54      1057       711    -1062      1658     -2201             3426
 55      1077       711    -1213      3492     -3015             5280
 94       772       414     -501      2904     -2262             4090
 95      -786      -314     -407     -2368     -2005             0
到目前为止,我的努力:

df1 <- df$`SE3 - NO1`[which(Data$`SE3 - NO1`>0)]
df2 <- df$`SE3 - DK1`[which(Data$`SE3 - DK1`>0)]
df1 0)]
df2(0)]
但是它确实创建了两个不同长度的向量,所以它完全搞砸了。

您可以尝试以下方法:

 df$TotalImportSE3=rowSums(df*(df>0))
  • df
    是数据帧的名称
您可以尝试以下方法:

 df$TotalImportSE3=rowSums(df*(df>0))
  • df
    是数据帧的名称

我尝试使用sum和which函数,但到目前为止,我成功地提取了各个列的正值,然后对它们求和,而不是同时对所有列求和。您应该编辑您的问题以反映此信息。该网站旨在帮助他人,当你看起来没有做出任何努力时,人们就不太愿意帮助。在你的最后一行中,你的意思是314应该是-314吗?是的,它确实应该是-314,到目前为止,用我的新手努力编辑了这个问题。我尝试使用sum和哪个函数,但到目前为止,我设法提取了各个列的正值,然后对它们求和,而不是同时对所有列求和。您应该编辑您的问题以反映这些信息。该网站旨在帮助他人,当你看起来没有做出任何努力时,人们就不太愿意帮助你。在你的最后一行中,你的意思是314变为-314吗?是的,确实应该是-314,用我的新手努力编辑了这个问题。非常好!然而,我真的不明白*符号是如何工作的,它只是为数据帧只求和正数据帧值创造了一个条件吗?这些可能是多个条件吗?df>0为正条件返回TRUE和FALSE(大于零的数据帧对象为TRUE,小于零的数据帧对象为FALSE)。。。然后乘以df,它返回正数works perfect!然而,我真的不明白*符号是如何工作的,它只是为数据帧只求和正数据帧值创造了一个条件吗?这些可能是多个条件吗?df>0为正条件返回TRUE和FALSE(大于零的数据帧对象为TRUE,小于零的数据帧对象为FALSE)。。。然后乘以df返回正数