你好我有一个列表数据
list1 <- list()
#date list is a "date" object
list1$date <- c("01/06/2002", "02/06/2002", "03/06/2002",
"04/06/2002", "05/06/2002", "01/07/2002", "19/07/2002", "11/07/2002",
"15/07/2002", "17/07/2002", "03/07/2002")
list1$value1 <- c(100,200,300,100,200,300,100,200,300,100,200)
list1$value2 <- c(1000,2000,3000,1000,2000,3000,1000,2000,3000,1000,2000)
我想修改列表中的值,这样如果日期在1到7之间,列表值就会加倍。
有没有一种方法可以让我写一个条件来检查列表中的日期,并将其他列表中的值加倍?
预期输出:
list$value1
c(200,400,600,200,400,600,100,200,300,100,400)
list$value2
c(2000,4000,6000,2000,4000,6000,1000,2000,3000,1000,4000)
2条答案
按热度按时间ndasle7k1#
您可以通过提取前2个字符来获取日期,并使用
lapply
将介于1和7之间的日期值加倍。数据
数据中缺少一些引号,修复该问题并将列表名称更改为
list1
,因为list
是函数的名称。osh3o9ms2#
您可以使用
as.numeric(strftime())
来撷取日期,并以ifelse()
有条件地取代值:第一个