权重为R的聚合数据表
我是新使用data.table的,有时会让人困惑。 我有一个类似于data.table的数据集权重为R的聚合数据表,r,data.table,frequency,tapply,R,Data.table,Frequency,Tapply,我是新使用data.table的,有时会让人困惑。 我有一个类似于data.table的数据集 GEO ANC WG V1 .... P1 A1 w1 v11 .... P1 A2 w2 v12 .... P2 A1 w3 v13 .... P3 A1 w4 v14 .... 下面是一个可复制的示例: set.seed(123) DT <- data.table(GEO = c("b","b","b","b","b",
GEO ANC WG V1 ....
P1 A1 w1 v11 ....
P1 A2 w2 v12 ....
P2 A1 w3 v13 ....
P3 A1 w4 v14 ....
下面是一个可复制的示例:
set.seed(123)
DT <- data.table(GEO = c("b","b","b","b","b","a","a","c"),
ANC = c("x","y","z","x","x",NA, "x","w"),
WG=sample(100,8),
c=sample(5,8, replace=T))
它似乎工作得很好,但输出仅给出两列:GEO和AN,并且频率在变量AN下。差不多
GEO AN
P1 fre1
P1 fre2
P2 fre3
P3 fre4
我更喜欢有三列的输出:GEO,一个具有实际值A1、A2等的列,以及第三个具有频率的列。
这样我就可以轻松地将这些数据与原始数据合并
关于如何做到这一点有什么想法吗?请提供一个可复制的示例要将结果分配给一个新的列,请使用类似dt[,freq:=wpctAN,WG,na.rm=TRUE,by=GEO]的语法,不需要使用[]的.SDcols或shenanigans。我建议您阅读一些教程/小插曲:顺便说一句,wpct是什么?也许na.省略dt[,listANC=uniqueANC,wpctANC,WG,na.rm=TRUE,by=GEO],对Frank代码的修改。@akrun:很有魅力,谢谢!!!!listANC是独一无二的…真的很管用
GEO AN
P1 fre1
P1 fre2
P2 fre3
P3 fre4