【发布时间】:2017-02-14 20:00:45
【问题描述】:
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
我想以多种方式分析数据(就像 excel 中的数据透视表)
对于每个日期(天),我有多个值。我需要按日期(仅一天,因为我仍然想要每日数据)分别为每个湖计算 P、N、C 的平均值。
需要注意的一点是我的缺失值不是零。所以平均值不应该受到那些缺失值的影响。 3)然后在湖边绘制。所以有多个图,其中日期将在 x 轴上,(P,N,C)在 Y 轴上,
我通过数据透视表在 excel 中进行了分析,结果看起来像这样。但是使用excel很乏味。所以我正在寻找在 R 中做这件事。
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 = .(lake, date)]
标签: r pivot-table