获取行-1

时间:2015-12-01 11:11:27

标签: r

我有以下数据框(实际的df更大但只是用于理解目的)

product test_result, benchmark
1, 1.1, 1
1, 2.1, 3
1, 2.1, 2

产品在test_result > benchmark时通过了测试。我现在要做的是添加一列说明是否 产品通过了最后一次测试。因此,第2行的df$result_last_test应为PASSED,第3行应为FAILED

所以预期的输出应该是

product test_result, benchmark, test_result_previous
1, 1.1, 1, NA
1, 2.1, 3, PASSED
1, 2.1, 2 FAILED

我正在寻找一种方法来与之前的产品进行比较。我的第一个想法是创建一个循环并获取列表中的半个最后一项?关于我的方法/问题的任何反馈?

1 个答案:

答案 0 :(得分:0)

解决方案非常简单,你不需要任何循环:

n <- length(test_result)
test <- c(NA, test_result[1:(n-1)] > test_result)

或使用更简单的代码(检查时间tt-1之间的差异是否大于0):

test <- c(NA, diff(test_result) > 0)

接下来,使用

命名输出
ifelse(test, "PASSED", "FAILED")