如何使用R中的另一个日期列部分替换列的数据

如何使用R中的另一个日期列部分替换列的数据,r,R,我有一个示例数据集,如下所示 sampDate <- as.Date(c("2011-09-01","2011-09-02","2011-09-03","2011-09-04","2011-09-05", "2011-09-06"), format ="%Y-%m-%d") p1 <- c( 10, 6.1, 11.1, 9.1, 10.1, 7) p2 <- rep(1,6) df <- data.frame(sampDate,p1,p2);df s

我有一个示例数据集,如下所示

sampDate <- as.Date(c("2011-09-01","2011-09-02","2011-09-03","2011-09-04","2011-09-05", "2011-09-06"), format ="%Y-%m-%d")

p1 <- c( 10,  6.1, 11.1,  9.1,  10.1, 7)
p2 <- rep(1,6)

df <- data.frame(sampDate,p1,p2);df

    sampDate   p1  p2
1 2011-09-01 10.0  1
2 2011-09-02  6.1  1
3 2011-09-03 11.1  1
4 2011-09-04  9.1  1
5 2011-09-05 10.1  1
6 2011-09-06  7.0  1

我一直在尝试使用
ifelse
和其他索引操作符,但我遇到了麻烦。如果我能找到一种索引方法,那将是最好的,因为我的数据集很大。

wow danke Sven!简单整洁。甚至不知道"内"功能的存在。非常感谢你的邀请enlightenment@kigode,如果斯文的建议有助于解决您的问题或回答您的问题,请不要忘记投票或将答案标记为已接受。这有助于使R标记中的“未应答”队列更易于管理;)这个答案的易读性很好(没有不必要地重复
df
等等)。然而,基本的子集和替换可能会更快:
df[df$sampDate>=“2011-09-01”&df$sampDate@mrdwab,谢谢,并注意到。但我不能升级它,因为我是新来的,我没有这样做的基本声誉。
within(df, p2 <- replace(p2, sampDate>="2011-09-01" & sampDate<="2011-09-03", 0))
within(df, p2 <- replace(p2, sampDate>="2011-09-01" & sampDate<="2011-09-03", 0))
    sampDate   p1 p2
1 2011-09-01 10.0  0
2 2011-09-02  6.1  0
3 2011-09-03 11.1  0
4 2011-09-04  9.1  1
5 2011-09-05 10.1  1
6 2011-09-06  7.0  1