有没有办法在R中创建包含条件值的新var?
我是R的一个相对较新的用户,一直在努力解决这个问题 假设我有以下5个变量a:e的df有没有办法在R中创建包含条件值的新var?,r,dplyr,tidyr,R,Dplyr,Tidyr,我是R的一个相对较新的用户,一直在努力解决这个问题 假设我有以下5个变量a:e的df 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) 使用rowSums来计算除第一列
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)
使用
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
使用
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
我们可以使用
apply
和sum
df$f <- apply(df[-1] > 0, 1, sum)
df$f 0,1,总和)
我们可以使用应用
和求和
df$f <- apply(df[-1] > 0, 1, sum)
df$f 0,1,总和)
您能否显示此示例输入所需的输出?根据“年”,我不知道你所说的“值>0”是什么意思。是否应该是大于0的值计数?或值>0的列名?(如果超过1个值>0会发生什么情况?)或其他情况?您好,是一个包含值计数>0的新列。我已经编辑了我的文章。你能展示一下你对这个示例输入的期望输出吗?根据“年”,我不知道你所说的“值>0”是什么意思。是否应该是大于0的值计数?或值>0的列名?(如果超过1个值>0会发生什么情况?)或其他情况?您好,是一个包含值计数>0的新列。我已经编辑了我的帖子。非常感谢!!看起来很简单!建议您通过向量函数查看基R:行和、行平均、列和、列平均。RStudio帮助:?行总和将向您显示信息。您好@SteveM,谢谢您的建议。我还有一个问题{colSums},我知道在上面的例子中,func将计算指定列的总值。但是,有没有办法分别计算1990-1992年和1993-1994年a、c和f列的值?非常感谢!!看起来很简单!建议您通过向量函数查看基R:行和、行平均、列和、列平均。RStudio帮助:?行总和将向您显示信息。您好@SteveM,谢谢您的建议。我还有一个问题{colSums},我知道在上面的例子中,func将计算指定列的总值。但是,有没有办法分别计算1990-1992年和1993-1994年a、c和f列的值?