Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法在R中创建包含条件值的新var?_R_Dplyr_Tidyr - Fatal编程技术网

有没有办法在R中创建包含条件值的新var?

有没有办法在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来计算除第一列

我是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
来计算除第一列以外的值为
>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列的值?