根据每个类别出现的百分比随机将分类变量添加到 r 中的数据框
Adding categorical variable to a dataframe in r randomly depending on the percent times each category will appear
我正在尝试模拟下面显示的一些数据以在 r 中进行分析,我需要添加一个类别为“借方和贷方”的列,这样在最终数据集中我将有“76%”借方和“24%” ' 致谢。
cust_id trxn_date trxn_id trxn_amt
1001 25-Jun-14 303703 373
1001 13-Jun-14 283268 143
1001 14-May-14 233493 580
1001 3-Apr-14 164596 155
1001 24-Mar-14 147658 651
1001 22-Mar-14 144280 229
1001 14-Mar-14 130655 100
1001 11-Mar-14 125599 170
1001 9-Mar-14 122245 674
1001 1-Mar-14 108788 223
1001 21-Feb-14 95177 68
1001 16-Feb-14 86754 689
1001 26-Jan-14 51920 141
cust_id trxn_date trxn_id trxn_amt Trxn_type
1001 25-Jun-14 303703 373 Debit
1001 13-Jun-14 283268 143 Debit
1001 14-May-14 233493 580 Debit
1001 3-Apr-14 164596 155 Debit
1001 24-Mar-14 147658 651 Debit
1001 22-Mar-14 144280 229 Debit
1001 14-Mar-14 130655 100 Debit
1001 11-Mar-14 125599 170 Debit
1001 9-Mar-14 122245 674 Debit
1001 1-Mar-14 108788 223 Debit
1001 21-Feb-14 95177 68 Credit
1001 16-Feb-14 86754 689 Credit
1001 26-Jan-14 51920 141 Credit
提前致谢
我们可以使用 sample()
以给定的概率将每个观察值随机分配给 Debit
或 Credit
。
df$Trxn_type <- sample(c("Debit", "Credit"),
size = nrow(df),
prob = c(0.76, 0.24), replace = TRUE)
> df
# cust_id trxn_date trxn_id trxn_amt Trxn_type
#1 1001 25-Jun-14 303703 373 Debit
#2 1001 13-Jun-14 283268 143 Credit
#3 1001 14-May-14 233493 580 Debit
#4 1001 3-Apr-14 164596 155 Debit
#5 1001 24-Mar-14 147658 651 Debit
#6 1001 22-Mar-14 144280 229 Credit
#7 1001 14-Mar-14 130655 100 Credit
#8 1001 11-Mar-14 125599 170 Debit
#9 1001 9-Mar-14 122245 674 Debit
#10 1001 1-Mar-14 108788 223 Debit
#11 1001 21-Feb-14 95177 68 Debit
#12 1001 16-Feb-14 86754 689 Debit
#13 1001 26-Jan-14 51920 141 Debit
假设您的数据框名为 a
,那么这将起作用:
a$type <- as.factor(sample(c("debit", "credit"),
size = nrow(a),
replace = TRUE,
prob = c(.76, .24)))
你在那里做的是创建一个随机样本,其大小与 a 的发生概率定义为 76% 和 24%。
我正在尝试模拟下面显示的一些数据以在 r 中进行分析,我需要添加一个类别为“借方和贷方”的列,这样在最终数据集中我将有“76%”借方和“24%” ' 致谢。
cust_id trxn_date trxn_id trxn_amt
1001 25-Jun-14 303703 373
1001 13-Jun-14 283268 143
1001 14-May-14 233493 580
1001 3-Apr-14 164596 155
1001 24-Mar-14 147658 651
1001 22-Mar-14 144280 229
1001 14-Mar-14 130655 100
1001 11-Mar-14 125599 170
1001 9-Mar-14 122245 674
1001 1-Mar-14 108788 223
1001 21-Feb-14 95177 68
1001 16-Feb-14 86754 689
1001 26-Jan-14 51920 141
cust_id trxn_date trxn_id trxn_amt Trxn_type
1001 25-Jun-14 303703 373 Debit
1001 13-Jun-14 283268 143 Debit
1001 14-May-14 233493 580 Debit
1001 3-Apr-14 164596 155 Debit
1001 24-Mar-14 147658 651 Debit
1001 22-Mar-14 144280 229 Debit
1001 14-Mar-14 130655 100 Debit
1001 11-Mar-14 125599 170 Debit
1001 9-Mar-14 122245 674 Debit
1001 1-Mar-14 108788 223 Debit
1001 21-Feb-14 95177 68 Credit
1001 16-Feb-14 86754 689 Credit
1001 26-Jan-14 51920 141 Credit
提前致谢
我们可以使用 sample()
以给定的概率将每个观察值随机分配给 Debit
或 Credit
。
df$Trxn_type <- sample(c("Debit", "Credit"),
size = nrow(df),
prob = c(0.76, 0.24), replace = TRUE)
> df
# cust_id trxn_date trxn_id trxn_amt Trxn_type
#1 1001 25-Jun-14 303703 373 Debit
#2 1001 13-Jun-14 283268 143 Credit
#3 1001 14-May-14 233493 580 Debit
#4 1001 3-Apr-14 164596 155 Debit
#5 1001 24-Mar-14 147658 651 Debit
#6 1001 22-Mar-14 144280 229 Credit
#7 1001 14-Mar-14 130655 100 Credit
#8 1001 11-Mar-14 125599 170 Debit
#9 1001 9-Mar-14 122245 674 Debit
#10 1001 1-Mar-14 108788 223 Debit
#11 1001 21-Feb-14 95177 68 Debit
#12 1001 16-Feb-14 86754 689 Debit
#13 1001 26-Jan-14 51920 141 Debit
假设您的数据框名为 a
,那么这将起作用:
a$type <- as.factor(sample(c("debit", "credit"),
size = nrow(a),
replace = TRUE,
prob = c(.76, .24)))
你在那里做的是创建一个随机样本,其大小与 a 的发生概率定义为 76% 和 24%。