我已经创建了一个名为Data的表.此表包含非唯一ID字段.
data <- data.frame(ID = sample(c(1:5), 10, replace = T))
我有另一个名为概率的表,其中包含ID字段的匹配项、对应的比率和名称:
probabilities <- data.frame(ID = c(1,1,2,2,3,3,4,4,4,5), ratio = c(0.9, 0.1, 0.4, 0.6, 0.8, 0.2, 0.3, 0.3, 0.4, 1.0), name = c("A", "B", "A", "C", "F", "G", "B", "C", "G", "F"))
我正try 在数据表中创建一个名为NAME的新变量.这将由概率表中基于Ratio列的NAME变量填充.
例如,数据表中任何ID为1都应该有90%的几率是A,10%的几率是B,ID为4的ID应该有30%的几率是B,30%的几率是C,40%的几率是G,依此类推.
有人知道如何才能做到这一点吗?
我try 了以下方法,但遇到错误:
#load packages
library(dplyr)
#create new variable called name
data <- data %>%
mutate(name = sample(probabilities$name[ID=probabilities$ID],
size = n(),
prop = probabilities$ratio[ID=probabilities$ID],
replace = TRUE))
mutate()
中的错误:
好了!计算name = sample(...)
时出现问题.
由sample()
中的错误导致:
好了!未使用的参数(属性=概率$比率[名称=概率$名称])