【发布时间】:2019-06-20 06:02:14
【问题描述】:
我正在尝试计算具有多个变量的行中的累积总和。
这是我的数据作为示例。我有 5 个患者 ID 和 4 个条件变量。如果条件中有 '1 到 3' 之间的值,则 cumsum 将加 1。
ID<-c("a","b","c","d","e")
cond1<-as.factor(sample(x=1:7,size=5,replace=TRUE))
cond2<-as.factor(sample(x=1:7,size=5,replace=TRUE))
cond3<-as.factor(sample(x=1:7,size=5,replace=TRUE))
cond4<-as.factor(sample(x=1:7,size=5,replace=TRUE))
df<-data.frame(ID,cond1,cond2,cond3,cond4)
df
ID cond1 cond2 cond3 cond4
1 a 2 7 6 6
2 b 7 2 3 6
3 c 4 3 1 4
4 d 7 3 3 6
5 e 6 7 7 3
我使用rowSums 代码和以下语句。然而,作为第 2 行,虽然 cond2 是 2,cond3 是 3,但 cumsum 不是“2”,“1”。第 4 行也有同样的问题。
df$cumsum<-rowSums(df[,2:5]==c(1,2,3),na.rm=TRUE)
df
ID cond1 cond2 cond3 cond4 cumsum
1 a 2 7 6 6 0
2 b 7 2 3 6 1
3 c 4 3 1 4 1
4 d 7 3 3 6 1
5 e 6 7 7 3 0
如何使其累积?非常感谢您的帮助。
【问题讨论】:
标签: r cumulative-sum