r - 组的R DataTable商
问题描述
data1=data.frame("Group"=c(1,1,2,2,3,3,4,4),
"Class"=c(0,1,0,1,0,1,0,1),
"Score"=c(6,7,7,4,8,8,3,4),
"Q"=c(0.857142857,0.857142857,1.75,1.75,1,1,0.75,0.75))
我有除“Q”列之外的所有数据。为了达到“Q”,我将每个组的第 0 类分数除以第 1 类分数。我希望生成列'Q'并将其添加到data1。
解决方案
我们可以通过多种方式做到这一点(假设每个组的“分数”中只有一个值 0 和 1,做一个比较运算符并将每个“类”对应的“分数”子集
library(data.table)
setDT(data1)[, Q1 := Score[Class == 0]/Score[Class == 1] , Group]
或者另一种选择是order
并划分第一个/最后一个
setDT(data1)[order(Group, Class), Q1 = first(Score)/last(Score), Group]
推荐阅读
- angular - 检索数据而不重复 - 离子
- postgresql - WSO2 添加永久数据源配置
- maven - 如何让 Maven 与 JUnit 配合得很好?
- python - 如何从 numpy 数组创建数据框?
- excel - 将日期设置为工作簿定义名称的值?
- python - 与第三列匹配的一列上的交叉表
- asp.net - 在 ASP.NET MVC 中将动态文本加载到工具提示
- reactjs - 笑话:如何模拟动态 querySelector 元素并在其上添加 eventListener
- spinnaker - Spinnaker Canary 分析阶段缺少资源类型下拉列表
- sql - 将不同的行值转换为列标题并使用 proc SQL 汇总数据