R中的透视表分析和基于子集数据的绘图
我想用两种方法分析数据(就像excel中的透视表一样)R中的透视表分析和基于子集数据的绘图,r,pivot-table,R,Pivot Table,我想用两种方法分析数据(就像excel中的透视表一样) 对于每个日期(天),我有多个值。我需要分别计算每个湖泊的P、N、C的平均值(仅一天,因为我仍然需要每日数据) 需要注意的一点是,我缺少的值不是零。所以平均值不应该受到这些缺失值的影响。 3) 然后在湖边画。所以,多个绘图,其中日期将在x轴上,并且(P,N,C)将在Y轴上 我用透视表在excel中进行了分析,结果是这样的。但是使用excel是乏味的。所以我想在R做这件事 lake date
lake date P N C
East Long Lake 9/5/1994 21.9 254.8
East Long Lake 9/5/1994 30.1 1190.0 257.0
East Long Lake 9/5/1994 20.5 256.6
East Long Lake 9/5/1994 22.1 249.0
East Long Lake 9/5/1994 212.5 2011.6 1090.6
Central Long Lake 6/30/1995 22.9 91.1
Central Long Lake 6/30/1995
Peter Lake 7/6/1994 41.9 527.2 29.6
Peter Lake 7/6/1994 138.8 1994.0 1409.6
Sparkling lake 7/13/1994 19.1 746.7 22.6
Sparkling Lake 7/13/1994 19.2 21.3
使用
dplyr
并假设mydf
是您的数据,我们可以:
lake date P N C
East Long Lake 9/5/1994 61.42 792.4 673.8
Central Long Lake 6/30/1995 22.9 91.1
Peter Lake 7/6/1994 90.35 1260.6 719.6
Sparkling Lake 7/13/1994 19.15 384 22.6
这比我想象的要容易。使用data.table获取您要查找的内容,然后绘制与您所问的最后一个问题类似的图<代码>setDT(dat);dat=dat[(P=mean(P,na.rm=T),N=mean(N,na.rm=T),C=mean(C,na.rm=T)),by=(lake,date)]希望这有帮助!提供了'dat[(P=mean(P,na.rm=T),N=mean(N,na.rm=T),C=mean(C,na.rm=T)),by=(lake,date)]'by'或'keyby'中的错误,但不是j@Kristofersen我试过了,但得到了一个错误抱歉,忘记了第一个逗号。试试这个:
setDT(dat);dat=dat[,(P=mean(P,na.rm=T),N=mean(N,na.rm=T),C=mean(C,na.rm=T)),by=(湖,日期)]
library(dplyr)
mydf %>%
group_by(lake, date) %>%
summarise_all(mean, na.rm = T)