1
我想将值NA
设置为在特定日期之前发生的数据帧内的某些行/列。但是每一列都有不同的日期/标准。那么这将如何工作?根据日期标准将某些值设置为数据帧
样品数据框:
dates <- c("01/01/2015", "06/15/2015", "11/30/2015")
a <- c(1, 2, 3)
b <- c(2, 4, 6)
c <- c(3, 5, 9)
df <- data.frame(Date = dates, A = a, B = b, C = c)
startDate <- c("02/20/2015", "07/28/2015", "12/01/2015")
所以我data.frame应该是这样的:
Date A B C
01/01/2015 1 2 3
06/15/2015 2 4 5
11/30/2015 3 6 9
使用startDate
为我的标准,我想在相对该日期之前设置的任何值列到NA
,以便我的最终结果如下所示:
Date A B C
01/01/2015 NA NA NA
06/15/2015 2 NA NA
11/30/2015 3 6 NA
有人可以帮我吗? 顺便说一句,我真正的data.frame有大约20 +列。以上只是我实际问题的一个小例子。
在此先感谢!
感谢这个 - 虽然,它不一定会工作,以取代NA零在下一步如果有为零的起始日期后的值,对不对? – RiddleMeThis
@RiddleMeThis,输出应该是你现在想要的。下一步无需转换为“NA”。 –
我认为它最好不乘以m,而是用m除以代替。这会给你NaN和Inf值,然后你可以使用do.call(df,lapply(df,function(x)replace(x,is.infinite(x),NA)))来将值转换为NAs 。非常感谢!这真的帮助我。 – RiddleMeThis