我有重复计算每个国家/地区产品平均价格的任务。价格和国家/地区代码(例如,ES =西班牙,TR =土耳其)位于我的数据框中的两个不同列中。如何使用for循环迭代不同的国家?
var data = [{ "lable": "parent1", "level": 0 }, { "lable": "child1", "level": 1 }, { "lable": "child2", "level": 2 }, { "lable": "parent2", "level": 0 }, { "lable": "child1", "level": 1 }, { "lable": "child2", "level": 2 }, { "lable": "child3", "level": 3 }, { "lable": "child4", "level": 1 }, { "lable": "child5", "level": 2 }],
tree = [],
level = [tree];
data.forEach(function (a) {
var o = { text: a.lable, children: [] };
level[a.level].push(o);
level[a.level + 1] = o.children;
level.length = a.level + 2;
});
document.write('<pre>' + JSON.stringify(tree, 0, 4) + '</pre>');
答案 0 :(得分:1)
您有一个拆分 - 应用 - 合并问题。尝试类似:
aggregate(priceusd ~ destinationcountry, data = training.data.raw, FUN = mean)
例如,从可重现的数据:
> aggregate(Sepal.Length ~ Species, data = iris, FUN = mean)
Species Sepal.Length
1 setosa 5.006
2 versicolor 5.936
3 virginica 6.588
使用基本R函数和附加软件包,有很多方法可以做到这一点。搜索“split-apply-combine”应该会引导您进入所有这些。
答案 1 :(得分:0)
您可以使用dplyr
执行此操作。
library(dplyr)
training.data.raw %>%
group_by(destinationcountry) %>%
summary(avg = mean(priceusd)) # Avg computed for each group in destinationcountry
这将计算每组的平均值。