Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用R对已删除的反向副本及其未删除的反向原件的列值求和(且仅适用于)_R_String_Dataframe_Lapply_Inverse Match - Fatal编程技术网

使用R对已删除的反向副本及其未删除的反向原件的列值求和(且仅适用于)

使用R对已删除的反向副本及其未删除的反向原件的列值求和(且仅适用于),r,string,dataframe,lapply,inverse-match,R,String,Dataframe,Lapply,Inverse Match,我有一个包含犯罪实例的数据集,每个实例都有一个位置(wardId)、犯罪类型(Primary.type)和日期。最终的目标是将其转化为以Primary.Type为节点的网络,其边的权重取决于它们共享Primary.Type和Ward.Date唯一组合的次数(当天发生在同一病房的两类犯罪是一种联系,这两类犯罪在当天发生的次数决定了权重) 在Ward.Date、wardId和Date合并后,我有一个edgelist,其中包含Ward.Date('wardId yyyy mm dd')、Primary

我有一个包含犯罪实例的数据集,每个实例都有一个位置(wardId)、犯罪类型(Primary.type)和日期。最终的目标是将其转化为以Primary.Type为节点的网络,其边的权重取决于它们共享Primary.Type和Ward.Date唯一组合的次数(当天发生在同一病房的两类犯罪是一种联系,这两类犯罪在当天发生的次数决定了权重)

在Ward.Date、wardId和Date合并后,我有一个edgelist,其中包含Ward.Date('wardId yyyy mm dd')、Primary.Type.x('string')、Primary.Type.y('string')、Weight(数字)。Primary.Types是通过合并重复表来创建edgelist的,因此存在反向重复项

病房日期 Primary.Type.x 初级.y型 重量 1 2017-01-03 盗窃 抢劫 1. 1 2017-01-03 抢劫 盗窃 1. 2 2017-01-05 电池 盗窃 2. 2 2017-01-05 盗窃 电池 2.
您可以对列
Primary.Type.x
Primary.Type.y
中的值进行排序,并使用
sum
Weight
对数据进行汇总

library(dplyr)

edgelist.primary.wards %>%
  group_by(Ward.Date, 
           Type1 = pmin(Primary.Type.x, Primary.Type.y), 
           Type2 = pmax(Primary.Type.x, Primary.Type.y)) %>%
  summarise(Weight = sum(Weight, na.rm = TRUE)) -> result

result
这也可以用base R写成:

aggregate(Weight~Ward.Date + Type1 + Type2, transform(edgelist.primary.wards, 
          Type1 = pmin(Primary.Type.x, Primary.Type.y), 
          Type2 = pmax(Primary.Type.x, Primary.Type.y)), sum, na.rm = TRUE)