首页 > 解决方案 > 是否有一个 R 函数来计算行中的值超过 0

问题描述

是否有一个 R 函数可以连续计算大于 0 的值

  test <- data.frame(a=c(a,"y"),b=c(0,"5"),c=c(2,"0"))
  test
  a b c
1 1 0 2
2 y 5 0

我需要关注,因为第一行包含 1 个大于 0 的值,第二行包含 1 个大于 0 的值。我需要排除第一列,因为它只是字符

test
  a b c d
1 a 0 2 1
2 y 5 0 1

标签: r

解决方案


我们可以用 转换typetype.convert,选择数字列,检查它是否大于 0,获取逻辑矩阵的逐行和,并在“测试”数据集中创建一个新列

library(tidyverse)
library(magrittr)
type.convert(test, as.is = TRUE) %>%
    select_if(is.numeric) %>%
    is_greater_than(0) %>% 
    rowSums %>%
    bind_cols(test, d = .)
#  a b c d
#1 a 0 2 1
#2 y 5 0 1

推荐阅读