我的数据集具有来自多个国家的观察结果,其因子变量(询问最大问题)为3 let data = {
"_id": "5ba8b60a7eae422533eb7e6b",
"_class": "com.agile.historicaldata.dao.ASM",
"id": 65,
"projectId": 1,
"incidentData": [{
"_id": "1",
"openedBy": "DELA CRUZ, ANNABELLE",
"isEnabled": false
},
{
"_id": "1",
"openedBy": "APACIBLE, LORELIE T",
"isEnabled": true
},
{
"_id": "4",
"openedBy": "MASACLAO, JOMER R",
"isEnabled": false
},
{
"_id": "3",
"openedBy": "MASACLAO, JOMER R",
"isEnabled": true
}]
}
let clonedData = JSON.parse(JSON.stringify(data));
clonedData.incidentData = clonedData.incidentData.filter(({isEnabled})=> isEnabled)
console.log("After Filtering Data is Same",data);
console.log("After Filtering cloned Data changed",clonedData);
(可供选择的不同问题)。我想将每个国家/地区的这些水平分布用作衡量与这些问题有关的问题(levels
)的权衡工具。
qlvl_1, qlvl_2, qlvl_3
对于我使用的其他有序因素变量:
n country wt biggest_problem qlvl_1 qlvl_2 qlvl_3
1 NLD 1 1 2 1 5
2 NLD 1.2 3 2 2 3
3 BLG 0.8 2 1 5 2
4 BLG 1.1 3 3 4 3
5 GER 2 2 2 2 3
6 NLD 1 1 1 1 4
7 NLD 1 1 5 2 1
8 NLD 1 2 1 5 2
9 BLG 1.1 1 5 2 1
10 BLG 1.2 3 1 4 1
11 GER 0.8 3 3 2 3
12 NLD 0.9 3 1 2 3
但是对于这个无序的因子变量,这没有任何意义。
我目前最好的赌注是:
df = df[, lapply(.SD, weighted.mean, wt, na.rm = TRUE), .SDcols = df(names), by=country]
但这给了我每个国家级别的比例,而不是每个国家的比例。
为每个国家/地区的每个级别创建百分比权重的最简单方法是什么?
我也一直在考虑如何在数据集中显示这些权重。我猜最简单的方法是针对每个国家/地区为数据集中的每个级别创建权重。但是,是否可能有更优雅的解决方案?例如,是否还可以创建因子水平为数字百分比的因子变量?
所需的输出:
df[, .N, by = list(biggest_problem, country)][,prop := N/sum(N)]