我正在使用我已经通过R运行的每日温度数据来提取每年的第一天和最后几天,这些数据高于每个城市数据集唯一的计算阈值 .
数据在带有“YR”,“number_of_days”,“start_date”和“end_date”列的.csv文件中被带入R.我只关心这个计算的“start_date”和“end_date”列 .
例如,如果我正在观察极端温度,一年中第一天的温度高于33摄氏度是5月1日,而温度高于33摄氏度的最后一天是10月20日 . 我不在乎两者之间的温度是什么,只是开始和结束日期 .
我想将“5月1日”转换为与其他年份进行比较的绝对数字 . 以下是来自BakersfieldTMAXextremes data.frame的示例数据:
YR number_of_days start_date end_date
1900 27 5/22/00 10/18/00
1901 42 6/29/01 10/22/01
1902 76 6/7/02 9/23/02
1903 97 5/6/03 10/18/03
1904 98 4/8/04 9/15/04
1905 115 5/11/05 10/10/05
1906 90 4/20/06 10/27/06
1907 97 5/27/07 10/10/07
1908 107 4/11/08 9/16/08
1909 106 5/2/09 9/23/09
1910 89 4/18/10 10/15/10
1911 54 5/5/11 9/4/11
1912 51 5/31/12 10/18/12
1913 100 4/25/13 10/18/13
1914 78 4/19/14 10/14/14
1915 84 5/27/15 10/8/15
1916 73 5/5/16 9/28/16
1917 99 6/2/17 10/8/17
1918 81 6/2/18 10/13/18
1919 85 5/28/19 9/26/19
1920 61 5/17/20 9/30/20
1921 85 6/5/21 11/3/21
1922 91 5/14/22 9/25/22
1923 67 5/9/23 9/17/23
1924 91 5/8/24 9/29/24
1925 70 5/3/25 9/24/25
1926 84 4/25/26 9/9/26
1927 77 4/25/27 10/20/27
1928 88 5/5/28 10/9/28
1929 91 5/22/29 10/23/29
1930 86 5/23/30 10/7/30
1931 91 4/20/31 9/26/31
1932 82 5/11/32 10/5/32
1933 93 5/27/33 10/7/33
1934 101 4/20/34 10/12/34
1935 93 5/21/35 10/11/35
1936 85 5/10/36 9/26/36
例如,我希望第一个开始日期为141(因为它是一年中365天中的第141天) . 在这一点上,我对闰年不在乎,所以我们假装它们不存在 . 我想在表中输出“YR”,“start_date”和“end_date”(除了绝对值) . 对于第一个,我想要“1900”,“141”和“291”作为输出 .
我尝试用if-else语句来做这个,但是对于一年中的365天来说这似乎很麻烦(我也是R的新手,并且只有在MATLAB中有这方面的经验) . 任何帮助是极大的赞赏!
1 回答
基于this answer,您可以按如下方式修改数据框: