基于R中的数据创建随机列
我需要创建一个模拟数据,但在合并R中的两列时遇到问题。我有两个基于R中的数据创建随机列,r,merge,R,Merge,我需要创建一个模拟数据,但在合并R中的两列时遇到问题。我有两个向量,例如: product <- c("prod_A", "prod_B", "prod_C", "prod_D", "prod_E") chemical <- c("chemA", "chemB", "chemC") 我们可以使用样本为每个产品创建化学的随机样本。这假设正在提取的化学品和样本数量都是随机的: library(tidyverse) set.seed(123) tibble(produc
向量,例如:
product <- c("prod_A", "prod_B", "prod_C", "prod_D", "prod_E")
chemical <- c("chemA", "chemB", "chemC")
我们可以使用样本
为每个产品
创建化学
的随机样本
。这假设正在提取的化学品和样本数量都是随机的:
library(tidyverse)
set.seed(123)
tibble(product) %>%
group_by(product) %>%
group_map(~ tibble(Chemical = sample(chemical, sample(seq_along(chemical)))))
输出:
# A tibble: 11 x 2
# Groups: product [5]
product Chemical
<chr> <chr>
1 prod_A chemC
2 prod_B chemC
3 prod_B chemB
4 prod_B chemA
5 prod_C chemB
6 prod_C chemA
7 prod_C chemC
8 prod_D chemC
9 prod_E chemC
10 prod_E chemB
11 prod_E chemA
#一个tible:11 x 2
#组别:产品[5]
产品化学品
1产品化学
2产品化学
3产品化学
4产品化学
5产品化学
6产品化学
7产品化学
8生产化学
9产品化学
10产品化学
11产品化学
请注意,group\u map
目前处于实验阶段,因此请谨慎使用。另一种方法是split
,map
和rbind
结果,这基本上就是group\u map
正在做的事情。尝试expand.grid(product,chemical)
或使用tidyverse
交叉(product,chemical)%>%突变(product=replace(product,replicated(product),“”)
为什么productA只有chemA和chemB?规则是什么?语句“我有两个数据。frame
”不正确。您有两个向量不是数据帧,请澄清您的输入是否应该是数据。frames@Sotos没有规则。这完全是随机的。@avid_用户同意。我重新开门。OP需要澄清他们所说的random
是什么意思。每个元素有多少个元素?我们需要更多的信息来继续
# A tibble: 11 x 2
# Groups: product [5]
product Chemical
<chr> <chr>
1 prod_A chemC
2 prod_B chemC
3 prod_B chemB
4 prod_B chemA
5 prod_C chemB
6 prod_C chemA
7 prod_C chemC
8 prod_D chemC
9 prod_E chemC
10 prod_E chemB
11 prod_E chemA