我需要用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
谢谢!
答案 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)