如何解决如何计算 R 中的变化率、置信区域和 p 值?
我需要一些 R 代码方面的帮助。我必须计算每年的变化率、置信区域和 p 值。您可以在下面看到我到目前为止所做的尝试。
在下一行中,您会看到我的数据来源。我为北半球选择了 3 月和 9 月。
ftp://sidads.colorado.edu/DATASETS/NOAA/G02135/
我试图从这里调整代码:Calculating Rate of Change
df <- data.frame(year=years,area=area03)
dt <- as.data.table(df)
# This return NA for every value
dt[,.(area,change=100*(area - shift(area,1))/shift(area,1)),by=year]
# The table
year area change
1: 1979 13.21 NA
2: 1980 12.99 NA
3: 1981 12.71 NA
4: 1982 13.07 NA
5: 1983 12.93 NA
6: 1984 12.55 NA
7: 1985 12.75 NA
8: 1986 12.72 NA
9: 1987 12.83 NA
10: 1988 13.90 NA
11: 1989 13.21 NA
12: 1990 13.51 NA
13: 1991 13.42 NA
14: 1992 13.48 NA
15: 1993 13.77 NA
16: 1994 13.55 NA
17: 1995 13.34 NA
18: 1996 12.90 NA
19: 1997 13.30 NA
20: 1998 13.57 NA
21: 1999 13.54 NA
22: 2000 13.17 NA
23: 2001 13.64 NA
24: 2002 13.42 NA
25: 2003 13.42 NA
26: 2004 12.99 NA
27: 2005 12.74 NA
28: 2006 12.52 NA
29: 2007 12.56 NA
30: 2008 13.53 NA
31: 2009 13.43 NA
32: 2010 13.53 NA
33: 2011 12.83 NA
34: 2012 13.41 NA
35: 2013 13.45 NA
36: 2014 12.95 NA
37: 2015 12.78 NA
38: 2016 12.61 NA
39: 2017 12.61 NA
40: 2018 12.69 NA
41: 2019 12.89 NA
42: 2020 12.97 NA
year area change
解决方法
这会计算上一年的百分比变化并将其放入变化列中。
text="id year area change
1: 1979 13.21 NA
2: 1980 12.99 NA
3: 1981 12.71 NA
4: 1982 13.07 NA
5: 1983 12.93 NA
6: 1984 12.55 NA
7: 1985 12.75 NA
8: 1986 12.72 NA
9: 1987 12.83 NA
10: 1988 13.90 NA
11: 1989 13.21 NA
12: 1990 13.51 NA
13: 1991 13.42 NA
14: 1992 13.48 NA
15: 1993 13.77 NA
16: 1994 13.55 NA
17: 1995 13.34 NA
18: 1996 12.90 NA
19: 1997 13.30 NA
20: 1998 13.57 NA
21: 1999 13.54 NA
22: 2000 13.17 NA
23: 2001 13.64 NA
24: 2002 13.42 NA
25: 2003 13.42 NA
26: 2004 12.99 NA
27: 2005 12.74 NA
28: 2006 12.52 NA
29: 2007 12.56 NA
30: 2008 13.53 NA
31: 2009 13.43 NA
32: 2010 13.53 NA
33: 2011 12.83 NA
34: 2012 13.41 NA
35: 2013 13.45 NA
36: 2014 12.95 NA
37: 2015 12.78 NA
38: 2016 12.61 NA
39: 2017 12.61 NA
40: 2018 12.69 NA
41: 2019 12.89 NA
42: 2020 12.97 NA"
df=read.table(text=text,header=TRUE)
chg=c(NA)
for (i in 2:nrow(df)) {
chg=c(chg,100*(df$area[i]-df$area[i-1])/df$area[i-1])
}
library(dplyr)
df=mutate(df,change=chg)
df
id year area change
1 1: 1979 13.21 NA
2 2: 1980 12.99 -1.6654050
3 3: 1981 12.71 -2.1555042
4 4: 1982 13.07 2.8324154
5 5: 1983 12.93 -1.0711553
6 6: 1984 12.55 -2.9389018
7 7: 1985 12.75 1.5936255
8 8: 1986 12.72 -0.2352941
9 9: 1987 12.83 0.8647799
10 10: 1988 13.90 8.3398285
11 11: 1989 13.21 -4.9640288
12 12: 1990 13.51 2.2710068
13 13: 1991 13.42 -0.6661732
14 14: 1992 13.48 0.4470939
15 15: 1993 13.77 2.1513353
16 16: 1994 13.55 -1.5976761
17 17: 1995 13.34 -1.5498155
18 18: 1996 12.90 -3.2983508
19 19: 1997 13.30 3.1007752
20 20: 1998 13.57 2.0300752
21 21: 1999 13.54 -0.2210759
22 22: 2000 13.17 -2.7326440
23 23: 2001 13.64 3.5687168
24 24: 2002 13.42 -1.6129032
25 25: 2003 13.42 0.0000000
26 26: 2004 12.99 -3.2041729
27 27: 2005 12.74 -1.9245574
28 28: 2006 12.52 -1.7268446
29 29: 2007 12.56 0.3194888
30 30: 2008 13.53 7.7229299
31 31: 2009 13.43 -0.7390983
32 32: 2010 13.53 0.7446016
33 33: 2011 12.83 -5.1736881
34 34: 2012 13.41 4.5206547
35 35: 2013 13.45 0.2982849
36 36: 2014 12.95 -3.7174721
37 37: 2015 12.78 -1.3127413
38 38: 2016 12.61 -1.3302034
39 39: 2017 12.61 0.0000000
40 40: 2018 12.69 0.6344171
41 41: 2019 12.89 1.5760441
42 42: 2020 12.97 0.6206362
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。