首页 > 解决方案 > 有没有办法在 R 中创建包含条件值的新 var?

问题描述

我是 R 的一个相对较新的用户,并且一直在努力解决这个问题。

假设我有以下 df 和 5 个变量 a:e

year <- c(1990:1994)
a <- c(1, 0, 0, 0, 0)
b <- c(0, 1, 0, 0, 0)
c <- c(0, 0, 5, 1, 0)
d <- c(0, 0, 0, 1, 0)
e <- c(0, 2, 0, 0, 1)
df <- data.frame(year, a, b, c, d, e)

那么,如何根据“年份”创建一个包含“值> 0”的新变量“f”。

任何帮助将非常感激!

已编辑:所需的输出是下面的 f 列

year a b c d e f
1990 1 0 0 0 0 1
1991 0 1 0 0 2 2
1992 0 0 5 0 0 1
1993 0 0 1 1 0 2
1994 0 2 0 0 1 2

标签: rdplyrtidyr

解决方案


用于rowSums计算有多少个值> 0,不包括第一列。

df$f = rowSums(df[-1] > 0)

df
#   year a b c d e f
# 1 1990 1 0 0 0 0 1
# 2 1991 0 1 0 0 2 2
# 3 1992 0 0 5 0 0 1
# 4 1993 0 0 1 1 0 2
# 5 1994 0 0 0 0 1 1

推荐阅读