我这里有一个非常简单的问题。我想计算数据框中两列之间的比率。我想计算“冷”列大于零时的比率。该比率将为“COLE/COLD/3600”。我想使用的另一个条件是找到“COLD”的最后一个非零值并将该比率指定为零。
玩具数据如下:
new <- structure(list(DIST = c(290.5, 291.5, 292.5, 293.5, 294.5, 295.5,
296.5, 297.5, 298.5, 299.5, 300.5, 301.5, 302.5, 303.5, 304.5,
305.5, 306.5, 307.5, 308.5, 309.5), COLE = c(8.99599581870558e-34,
4.7205846523432e-34, 2.46933986060826e-34, 1.28710593231168e-34,
6.68129579857346e-35, 3.4504303472814e-35, 1.77184019853307e-35,
9.05642991756649e-36, 4.6013156549926e-36, 2.31604511599026e-36,
1.14687288574039e-36, 5.5010466649376e-37, 2.45427157311345e-37,
8.97771568697138e-38, 2.3363639100918e-38, 0, 0, 0, 0, 0), COLD = c(6.1904901729067e-36,
3.2185001604668e-36, 1.65347497008439e-36, 8.31494814855863e-37,
4.01276411184216e-37, 1.77017459051552e-37, 5.41351248244182e-38,
1.12878823222726e-38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)), .Names = c("DIST",
"COLE", "COLD"), class = "data.frame", row.names = 291:310)
我使用的公式如下:
new$COLF <- ifelse(test=(new$COLD>0),(new$COLE/new$COLD/3600),0)
谁能建议我如何自动找到非零列“COLD”的最后一行,然后将“COLF”的值分配为零?
谢谢。