是否存在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
答案 0 :(得分:0)
我们可以将type
的列转换为type.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