r代码,尽管有行,但仅求值一个

时间:2019-04-24 03:45:21

标签: r

我正在尝试在r中进行编码以找到相应的径流值,其中降雨超过了特定阈值。问题是我的for代码要么只接受一个元素,要么不存储任何迭代。我不断收到错误消息,即参数长度> 1,仅使用了一个元素 它会继续打印代码中的所有值,或者只是对最后一个值进行评估。 我想在数据框中逐行测试条件

我尝试过for循环,因为我不能只专注于内置函数,所以它必须是for循环。即使我更改了值,它仍会继续打印代码中的所有值

`

for(row in 1:nrow(post)){
 Rainfall <- post[row,"Runoff"]
 Date <- post[row, "Day"]
 if (Rainfall.m3[nrow(post)] > 1000){
 print(paste("on", Day,"runoff was",post$Runoff))
 }
 else
 {print("")
 }`}
}

这是我的数据

      Day OB.NO Rainfall.m3 Comulative.Rainfall   Runoff Comulative.Runoff Computed.Runoff Comulative.Computed
46  28-Dec    46      6177.3             88052.7 1567.000          8105.812       575.72436          8206.51164
47  13-Jan    47      3210.8             91263.5  376.650          8482.462       299.24656           8505.7582
48  19-Jan    48      1500.7             92764.2   96.156          8578.618       139.86524          8645.62344
49  20-Jan    49      1116.8             93881.0  293.412          8872.030       104.08576           8749.7092
50  23-Jan    50      1500.7             95381.7   78.744          8950.774       139.86524          8889.57444
51   5-Feb    51      3036.3             98418.0  192.096          9142.870       282.98316           9172.5576
52   6-Feb    52      1186.6             99604.6   31.164          9174.034       110.59112          9283.14872
53  12-Mar    53      1291.3            100895.9  128.172          9302.206       120.34916          9403.49788
54  20-Mar    54       802.7            101698.6  127.404          9429.610        74.81164          9478.30952
55  29-Mar    55       628.2            102326.8    8.226          9437.836        58.54824          9536.85776
56   9-Apr    56       732.9            103059.7   56.490          9494.326        68.30628          9605.16404

1 个答案:

答案 0 :(得分:0)

我承认我很难理解这个问题的背景,但是我有一种直觉,也许我会很幸运并有所作为。

您的循环遍历数据帧,单独处理每一行。我怀疑这条线有问题。

print(paste("on", Day,"runoff was",post$Runoff))

我认为“ post $ Runoff”引用数据框中的整个Runoff列。这可能就是为什么它不断打印。我认为您只需要选择一行即可。

现在您已经做了几行了。

Rainfall <- post[row,"Runoff"]

因此,为什么不打印该变量呢?您已经拥有它。

print(paste("on", Day,"runoff was",Rainfall))

希望有帮助。我已经尽力了。