【发布时间】:2017-06-09 20:37:57
【问题描述】:
我的气候 df 看起来像...
ID NAME DATE TYPE VALUE
13943 HARLI 1207 TMIN 50.00
13943 HARLI 1208 TMAX 68.71
13943 HARLI 1015 PRCP 0.02
13258 DFW 1207 TMIN 50.00
13258 DFW 921 TMAX 80.21
13258 DFW 801 TMIN 50.00
13555 WACO 131 PRCP 0
我正在尝试确保每个站名 (ID) 的每个 df 都有一定数量的记录。例如,我希望 DFW 在 df 中至少有 6900 条记录,否则我不希望新 df 中有这些记录。
当我的类型在 VALUE 列中只有 TMAX 和 TMIN 时,下面的代码似乎可以正常工作,但是,我已经添加了更多数据。
CombinedFifteenYearsTemp <- CombinedFifteenYears[CombinedFifteenYears$ID
%in% names(which(table(CombinedFifteenYears$ID) >= 6900)),]
我已经包含了 PRCP(和风数据),但我不希望 >= 考虑这些值。对于具有 TMAX 和 TMIN 值的类型,我仍然只需要 >=6900 个数据点的站。所以我想我可以在 names(which(table())) 函数中对数据进行子集化,就像这样......
CombinedFifteenYearsTemp <- CombinedFifteenYears[CombinedFifteenYears$ID
%in% names(which(table(subset(CombinedFifteenYears,
grepl(("TMAX|TMIN"), CombinedFifteenYears$TYPE))) >= 6900)),]
但是,我收到一条错误提示,
Error in table(subset(CombinedFifteenYears, grepl(("TMAX|TMIN"),
CombinedFifteenYears$TYPE))) : attempt to make a table with >= 2^31 elements
除了 table() 之外还有其他可以计数的函数吗?仅供参考,我对 R 很陌生。
【问题讨论】: