首先让我说我对 R 比较陌生,并且通常认为自己是一个新手程序员......所以不要假设我知道我在做什么 :)
我有一个大矩阵,大约 300,000 x 14。它本质上是一个包含 15 分钟数据的 20 年数据集。但是,我只需要我命名为 REC.TYPE 的列包含字符串“SAO”或“FL-15”的行。
我非常低效的解决方案是逐行搜索矩阵,测试 REC.TYPE 列,如果该行不符合我的条件,则基本上删除该行。本质上...
j <- 1
for (i in 1:nrow(dataset)) {
if(dataset$REC.TYPE[j] != "SAO " && dataset$RECTYPE[j] != "FL-15") {
dataset <- dataset[-j,] }
else {
j <- j+1 }
}
在看到我的代码在一小时内只通过了大约 10% 的矩阵并且每一行都变慢之后......我认为必须有一种更有效的方法来只提取我需要的记录......尤其是当我需要重复时这适用于另外 8 个数据集。
谁能指出我正确的方向?