我有以下数据框(实际的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
我正在寻找一种方法来与之前的产品进行比较。我的第一个想法是创建一个循环并获取列表中的半个最后一项?关于我的方法/问题的任何反馈?
答案 0 :(得分:0)
解决方案非常简单,你不需要任何循环:
n <- length(test_result)
test <- c(NA, test_result[1:(n-1)] > test_result)
或使用更简单的代码(检查时间t
和t-1
之间的差异是否大于0):
test <- c(NA, diff(test_result) > 0)
接下来,使用
命名输出ifelse(test, "PASSED", "FAILED")