小编Sau*_*liz的帖子

如何在R组内排名?

好的,看看这个数据框......

  customer_name order_dates order_values
1          John  2010-11-01           15
2           Bob  2008-03-25           12
3          Alex  2009-11-15            5
4          John  2012-08-06           15
5          John  2015-05-07           20
Run Code Online (Sandbox Code Playgroud)

假设我想添加一个订单变量,按照名称,按最大订单日期排序最高订单值,使用最后的订单断路器订单日期.所以,最终数据应如下所示:

  customer_name order_dates order_values ranked_order_values_by_max_value_date
1          John  2010-11-01           15                               3
2           Bob  2008-03-25           12                               1
3          Alex  2009-11-15            5                               1
4          John  2012-08-06           15                               2
5          John  2015-05-07           20                               1
Run Code Online (Sandbox Code Playgroud)

每个人的单个订单获得1,并且所有后续订单都根据该值进行排名,并且决胜者是获得优先权的最后订单日期.在这个例子中,John的8/6/2012订单获得了#2等级,因为它是在2010年11月1日之后放置的.2015年5月7日的订单是1,因为它是最大的.因此,即使该订单是在20年前发布的,也应该是#1 Rank,因为它是John的最高订单价值.

有谁知道如何在R中做到这一点?我可以在数据框中的一组指定变量中排名?

谢谢你的帮助!

group-by r rank

15
推荐指数
3
解决办法
2万
查看次数

How to conditionally replace values in r data frame using if/then statement

I'd like to learn how to conditionally replace values in R data frame using if/then statements. Suppose I have a data frame like this one:

df <- data.frame(
customer_id = c(568468,568468,568468,485342,847295,847295),
customer = c('paramount','paramount','paramount','miramax','pixar','pixar'));
Run Code Online (Sandbox Code Playgroud)

I'd like to do something along the lines of, "if customer in ('paramount','pixar') make customer_id 99. Else do nothing". I'm using this code, but it's not working:

if(df$customer %in% c('paramount','pixar')){
df$customer_id == 99
}else{
df$customer_id == df$customer_id
}
Run Code Online (Sandbox Code Playgroud)

I get a warning message such as the …

if-statement r

5
推荐指数
1
解决办法
2万
查看次数

Gitlab CI/CD Pipeline 在迁移前运行 Django 单元测试

问题

我正在尝试在 Gitlab 的 CI/CD 中设置一个测试阶段。在本地,运行单元测试一切顺利且符合预期。然而,在 Gitlab 的 CI/CD 中,运行脚本时,coverage run manage.py test -v 2 && coverage report单元测试会在测试数据库中完成迁移之前执行,这是意外的,并且总是会失败。测试数据库上的迁移需要在执行单元测试之前运行。

知道为什么会发生这种行为吗?

运行时,python manage.py test默认情况下会执行以下步骤:

  1. 创建测试数据库。

  2. 数据库迁移。

  3. 运行系统检查。

  4. 运行测试。

  5. 报告测试次数和成功/失败。

  6. 删除测试数据库。

在下面的本地测试运行输出中,您可以看到这些确切的步骤,按顺序发生。问题是,在Gitlab 的 CI/CD管道中,第 2 步和第 4 步对我来说由于某种神秘的原因而被切换。

我已经尝试过的事情

  • 删除覆盖范围,仅执行python manage.py test结果:相同的错误
  • 删除用户测试,Gitlab 说测试失败:结果:相同的错误
  • 删除除一个单元测试之外的所有单元测试以尝试隔离:结果:相同的错误
  • 在 Gitlab 容器内添加并激活虚拟环境:结果:同样的错误
  • 尝试 SQLite3:结果:由于 SQLite3 不支持项目中必需的必要数组字段,迁移失败

Gitlab CI/CD 输出

我的实际输出要大得多。但这是相关部分:

$ echo $TEST_SECRETS | base64 -d > config/settings/local.py
$ echo RUNNING UNIT TESTS
RUNNING UNIT …
Run Code Online (Sandbox Code Playgroud)

python django unit-testing gitlab

5
推荐指数
1
解决办法
4022
查看次数

标签 统计

r ×2

django ×1

gitlab ×1

group-by ×1

if-statement ×1

python ×1

rank ×1

unit-testing ×1