【问题标题】:R: How to convert categories to columns? [duplicate]R:如何将类别转换为列? [复制]
【发布时间】:2016-01-01 16:43:36
【问题描述】:

我有这样的数据:

Id Action timestamp
1   click    #########
1    view    #########
1    data    #########
2    click   #########
2   click    #########

我想将类别转换为包含频率(计数)的列,如下所示:

id click view data
1    1    1     1
2    2    0     0 

我该怎么做?谢谢!

【问题讨论】:

  • 最快的方法是使用“data.table”或“reshape2”中的dcast。这样的解决方案有很多关于 SO 的答案。
  • table(df$Id, df$Action) 来自基本包将做同样的事情

标签: r reshape


【解决方案1】:

你可以这样做。

# create the data frame
df <- data.frame(Id=c(1,1,1,2,2), Action=c("click", "view", "data", "click", "click"))
df
#>   Id Action
#> 1  1  click
#> 2  1   view
#> 3  1   data
#> 4  2  click
#> 5  2  click

# Use reshape2::dcast
library(reshape2)
dcast(df, Id ~ Action, fun.aggregate = length)
#>   Id click data view
#> 1  1     1    1    1
#> 2  2     2    0    0

【讨论】:

  • 如果您想保存击键,该函数默认为长度dcast(df, Id~Action)
猜你喜欢
  • 2023-01-10
  • 2016-01-04
  • 2013-12-04
  • 1970-01-01
  • 2017-12-22
  • 2018-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多