需要使用新值替换列的值

时间:2016-07-25 15:54:50

标签: r

我需要用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

我需要替换列#34; Temp"的值。新值c(12,13,14,15)      在哪里"日期"大于(2016年9月7日)。日期格式为("%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 个答案:

答案 0 :(得分:1)

我们通过首先转换'日期'来创建逻辑索引。列到Date类并检查它是否大于" 2016-09-07" (' i1'),然后我们将“Temp”'基于' i1'的列并将值分配给从12开始的序列及其length.out指定为' i1'的sum,增加by 1。

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