通过循环每个资源的名称,查看分配给该人员姓名的帐户,随机选择一个,并用NA替换该人员的姓名,以减少资源分配。
可复制示例:
Accts <- paste0("Acc", 1:200)
Value <- c(500, 2000, 5000, 1000)
AccountDF <- data.frame(Accts, Value)
AccountDF$Owner[1:200] <- NA
AccountDF$Owner[1:23] <- "Jeff"
AccountDF$Owner[24:37] <- "Alex"
AccountDF$Owner[38:61] <- "Steph"
AccountDF$Owner[62:111] <- "Matt"
AccountDF$Owner[112:141] <- "David"
library(dplyr)
OwnerDF <- AccountDF %>%
group_by(Owner) %>%
summarise(Count = n(),
TotalValue = sum(Value)) %>%
filter(!is.na(Owner))
我到目前为止的进展:
for (p in 1:nrow(OwnerDF)){
while (AccountDF$Count[p] > 22){
AccountDF %>%
filter(Owner == OwnerDF$Owner[p]) %>%
sample_n(1)
}
}
我听说for循环是不必要的。我相信这可以通过purr包和pmap之类的东西来实现。我还在学习。
我想重复一下OwnerDF,看看那个人是否“拥有”了太多的账户。如果是,请查看原始帐户列表,随机选择一个,并将所有者的姓名替换为NA,从其计数中删除1,然后继续。
最后,在弄明白这一点后,我想看看它是否可以在多种条件下完成。。比如一会儿(伯爵)
要选择随机账户,只需创建一个随机变量并对其进行排序,取符合条件的前N个账户:
set.seed(1)
res = AccountDF %>%
mutate(r = runif(n())) %>%
arrange(r) %>%
group_by(Owner) %>%
mutate(newOwner = replace(Owner, cumsum(Value) > 40000 | row_number() > 22, NA)) %>%
select(-r)
# Test that it worked...
res %>%
filter(!is.na(newOwner)) %>%
group_by(newOwner) %>%
summarise(Count = n(), TotalValue = sum(Value))
# A tibble: 5 x 3
# newOwner Count TotalValue
# <chr> <int> <dbl>
# 1 Alex 14 27000
# 2 David 18 37000
# 3 Jeff 18 39500
# 4 Matt 18 39500
# 5 Steph 17 36500
《任择议定书》在评论中提到的扩展:
另一个问题。假设我对每个值和计数都有一个阈值,如果有人计数低但价值高,我想从他们的高价值账户中随机取一个账户,如果他们计数高但价值低,我想取低价值账户远离他们。如何从随机的角度做到这一点?
我可能会给每个观察值分配一个真实值的分数,比如...
s = scale(f(x))
其中f
是基于您提到的条件(高计数,高值或两者兼而有之)的函数,当您希望偏向于低值时,可能像x
和-x
一样简单偏向于高价值。
然后,添加一些噪声,并使用上面的结果进行排序:
r = s + rnorm(length(s))
如果输入的len()少于10个字符,则调用子函数“tester”的默认值“太短”。 我下面的代码在一定程度上有效。我需要帮助,这样用户可以一次又一次地输入,直到他们键入'quit',在该命令终止时,终端中没有给出任何输出。传接球不起作用,我不知道该在哪里Rest。 我尝试了一段时间,真的,有回报,但我不能再跟随了。
5.5公告,随机分组 电脑端暂不支持发布公告和随机分组活动,需要在手机APP端操作,具体操作请查看【APP指南-老师版手册】。
问题内容: 我在SQL Server中具有以下数据结构表: 等等。 我需要做的是获取所有连续的日子,其中Allocation = 0,并采用以下形式: 等等。 可以在SQL中执行此操作吗?如果可以,如何执行? 问题答案: 在此答案中,我将假定“ id”字段按递增日期进行排序时,对行进行连续编号,就像示例数据中所做的那样。(如果不存在,则可以创建这样的列)。 这是此处和此处描述的技术示例。 1)在相
问题内容: 使用以下模型: 如果我要查找包含至少一篇文章的订单操作,则可以按预期工作: 但是,如果要查找订单中所有商品的订单操作,正确的方法是什么? 引发错误(我理解为什么会这样)。 问题答案: 一个简单的解决方案: 这只是一个查询,但每篇文章都有一个内部联接。对于多篇文章,Willem更巧妙的解决方案应该会表现更好。
问题内容: 我可以依靠地图的随机迭代顺序在Web应用程序中实现客户端的随机“配对”吗?我试过环顾四周,但似乎找不到这种随机性有多大的细分。 该算法将类似于: 当连接的客户端> 1000个时,这是否足够?还是应该维护一个单独的客户端片段并从中随机选择? 问题答案: 尽管它说是随机的(随机的)(spec,blog,hashmap源,另一个blog,SO),但分布远非完美。 为什么?因为我们喜欢地图 快
我正在通过CodingBat解决以下问题: 给定一个整数数组,是否可以将整数分成两组,使一组的和为10的倍数,另一组的和为奇数。每个int必须在一个组或另一个组中。编写一个递归助手方法,该方法接受您喜欢的任何参数,并从splitOdd10()对递归助手进行初始调用。(不需要循环。) 我在SO上找到了一篇文章,讨论了一个类似的话题:是否有可能将一个数组分成两个具有相等乘积的数组,并尝试通过类比编写代