2016-07-25 58 views
1

我需要更换与R. 下面新值的数据帧的列的值,以取代一列的值是示例性的数据集:需要用新值

Date  Temp  SF 
2/3/2016  20  3 
4/3/2016  45  7 
7/3/2016  35  8 
9/3/2016  25  7 
9/4/2016  16  5 
9/7/2016  25  7 
9/9/2016  14  6 
10/2/2016 32  2 
11/2/2016 32  2 
11/16/2016 45  6 

我需要更换具有新值的列“Temp”的值c(12,13,14,15) 其中“Date”大于(9/7/2016)。日期格式为(“%m /%d%Y”)。 所以最终的输出应该是这样的:

Date  Temp  SF 
2/3/2016  20  3 
4/3/2016  45  7 
7/3/2016  35  8 
9/3/2016  25  7 
9/4/2016  16  5 
9/7/2016  25  7 
9/9/2016  12  6 
10/2/2016 13  2 
11/2/2016 14  2 
11/16/2016 15  6 

谢谢!

回答

1

我们通过首先将'Date'列转换为Date类并检查它是否大于“2016-09-07”('i1')来创建逻辑索引,然后我们基于“I1”和分配值,从12和指定为“I1”的sumlength.out启动序列,递增by 1.

i1 <- as.Date(df1$Date, "%m/%d/%Y") > "2016-09-07" 
df1$Temp[i1] <- seq(12, length.out = sum(i1), by = 1)