如何根据R的data.table对象中的另一个分类列找到类别的比例?
要根据Rdata.table对象中的另一个分类列查找类别的比例,我们可以按照以下步骤操作-
首先,创建一个data.table对象。
根据分类列查找比例。
创建data.table对象
加载data.table包并创建一个data.table具有两个分类列的对象-
例子
library(data.table) Category1<-sample(LETTERS[1:3],30,replace=TRUE) Category2<-sample(letters[1:4],30,replace=TRUE) DT<-data.table(Category1,Category2) DT
执行时,上述脚本生成以下内容output(thisoutputwillvaryonyoursystemduetorandomization)-
输出
Category1 Category2 1: C d 2: B a 3: C d 4: C a 5: B c 6: C b 7: B a 8: B b 9: B c 10: B d 11: B a 12: A d 13: C d 14: B a 15: A a 16: C a 17: B d 18: C c 19: C c 20: A b 21: A d 22: C c 23: B d 24: C c 25: A d 26: A b 27: B a 28: A c 29: B d 30: A d Category1 Category2
根据分类列查找比例
使用带有因子函数的制表函数来查找Category1值中Category2值的比例-
例子
library(data.table) Category1<-sample(LETTERS[1:3],30,replace=TRUE) Category2<-sample(letters[1:4],30,replace=TRUE) DT<-data.table(Category1,Category2) DT[order(Category2),.(Category2=letters[1:4],Proportion=tabulate(factor(Category2))/.N ),by=Category1]
输出
Category1 Category2 Proportion 1: B a 0.41666667 2: B b 0.08333333 3: B c 0.16666667 4: B d 0.33333333 5: C a 0.20000000 6: C b 0.10000000 7: C c 0.40000000 8: C d 0.30000000 9: A a 0.12500000 10: A b 0.25000000 11: A c 0.12500000 12: A d 0.50000000