r - 逐行确定所有 3 列都是负数还是正数

标签 r multiple-columns rows

我有一个由 3 列组成的数据集,对于每一列,值将在 -1 和 1 之间变化。

     A           B           C
0.0373      0.0373      0.0373
-0.0586     -0.0407     -0.1109
0.0458      0.0458      0.0458
0.0621      0.0621      0.0621
0.0452      0.0452      0.0452

我希望识别 A、B 和 C 的符号不相同的所有行。因此,例如,应返回第 2、4 和 5 行,因为其中一个列值的符号与其他两个值的符号不同。

我开始使用这个解决方案,但想知道是否有更简单、更清洁的方法。

df$test = (df$A > 0 & df$B > 0  & df$C > 0)
df$test2 = (df$A < 0 & df$B < 0  & df$C < 0)

result = subset(df,df$test == FALSE & df$test2 == FALSE)

      A       B      C  test test2
-0.0586 -0.0407 0.1109 FALSE FALSE
 0.0621 -0.0621 0.0621 FALSE FALSE
-0.0452  0.0452 0.0452 FALSE FALSE

谢谢。

最佳答案

我们可以使用rowSums

i1 <- (!rowSums(df > 0)) & (!rowSums(df < 0))
df[i1,]

关于r - 逐行确定所有 3 列都是负数还是正数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50116254/

相关文章:

r - 计算向量中下一个元素与前一个元素不同的次数

r - 转换堆积密度图中每个因子的高度 (ggplot2)

javascript - 使用javascript基于交互式ggplot创建过滤器选择

R 更改数据框列值与前一列比较

SQL Server,查找不同列中的交叉值

python - 错误 : out of bounds when searching for identical rows in a numpy array

javascript - 默认情况下使用 JQuery 折叠表格行

r - 循环内的哪个函数效率更高(ncol/nrow() 或 dim())

python - Pandas 根据 bool 值创建新列

php - 如何将 mySQL 中具有相同值的行分组到 php 中?