在 R 中创建一个新的数据框,将用户聚合成更大的用户组

Creating a new data frame that aggregates users into larger groups of users in R

目标:创建一个新的数据框架,从不同位置获取个人用户数据,并将其聚合到基于位置的时间序列数据框架中。

新的 table 将为每个 Locationid 包含一行,每一列都是每月时间序列的一部分(第一列除外,它是位置 ID)。数据框每个部分中的数据将是行动项目/总访问量的百分比。 "Action Item" 列中的 1 表示一个操作项目,0 表示未采取任何操作。

当前数据为:

Userid Locationid VisitDate ActionItem
1      Loc 1      6-13      1
2      Loc 1      7-13      0
3      Loc 2      7-13      1

目标是拥有一个如下所示的数据框:

Locid 6-13 7-13 8-13 9-13 ...
1     1    0    0    0
2     0    1    0    0 

您可以使用 tidyr 中的 spread 函数:

library(dplyr)
library(tidyr)

df %>%
  select(-Userid) %>%
  spread(key = VisitDate, value = ActionItem)

# Locationid 6-13 7-13
#      Loc 1    1    0
#      Loc 2   NA    1

试试这个:

library(reshape2)
df1=acast(df, Locationid~VisitDate, value.var="ActionItem")

df1[is.na(df1)]=0


> df1
  6-13 7-13
1    1    0
2    0    1