【发布时间】:2016-05-31 14:30:52
【问题描述】:
我想计算在前5 天的第 1 列 (ncol = 1) 定义的特定日期,value 出现 >20 的次数。比如日期1997.05.25值出现了多少次>20到1997.05.21。
这里是变量:
value <- c(37,19.75,19.5,14.5,24.75,25,25.5,19.75,19.75,14.25,21.25,21.75,17.5,16.25,14.5,
14.5,14.75,9.5,11.75,15.25,14.25,16.5,13.5,18.25,13.5,11.25,10.75,12,8.5,
9.75,14.75)
Date <- c("1997-05-01","1997-05-02","1997-05-03","1997-05-04","1997-05-05",
"1997-05-06","1997-05-07","1997-05-08","1997-05-09","1997-05-10",
"1997-05-11","1997-05-12","1997-05-13","1997-05-14","1997-05-15",
"1997-05-16","1997-05-17","1997-05-18","1997-05-19","1997-05-20",
"1997-05-21","1997-05-22","1997-05-23","1997-05-24","1997-05-25",
"1997-05-26","1997-05-27","1997-05-28","1997-05-29","1997-05-30",
"1997-05-31")
ncol <- c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)`
data <- data.frame(value, Date, ncol)
library(data.table)
setDT(data)[, ncol := ifelse(Date %in% c("1997-05-05","1997-05-11","1997-05-14",
"1997-05-18","1997-05-25"), ncol+1, 0) ]
如何做到最好?非常感谢您的帮助。
这是我的预期结果:
1. value Date ncol newcol
2. 37.00 1997-05-05 1 2
3. 19.75 1997-05-11 1 2
4. 19.50 1997-05-14 1 2
5. 14.50 1997-05-18 1 0
6. 24.75 1997-05-25 1 0
【问题讨论】:
-
添加您的预期输出可能会很好,因为从答案来看,它是模棱两可的
-
非常感谢@docendo discimus。把我想得到的结果。