R中序列数据的数据转换:连接一列基于其他列的数据

中国

我有一个数据框,其中包含有关会话编号的一长串顺序操作。我想将给定会话和 user_id 中的所有顺序操作串联在一行中。假设我有:

DF:
user_id  session action
1000         1    A
1000         1    B
1000         1    C
1000         2    A
1000         2    B
1001         1    A
1001         1    D
1001         2    B
1001         3    C
1002         1    B
1002         1    D
1002         1    D

我想转换成这种格式:

new_DF:

user_id  session action1 action2 action3
1000       1       A      B       C
1000       2       A      B       NA
1001       1       A      D       NA
1001       2       B      NA      NA
1001       3       C      NA      NA
1002       1       B      D       D

new_DF 中的列数等于单个会话中的最大操作数。那些操作较少的用户会收到NA会话中的无效操作。
我怎样才能在 R 中做到这一点?

阿克伦

我们可以使用dcastdata.table

library(data.table)
dcast(setDT(DF), user_id + session ~ 
      paste0("action", rowid(user_id, session)), value.var = "action")
#      user_id session action1 action2 action3
#1:    1000       1       A       B       C
#2:    1000       2       A       B      NA
#3:    1001       1       A       D      NA
#4:    1001       2       B      NA      NA
#5:    1001       3       C      NA      NA
#6:    1002       1       B       D       D

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何基于R中另一列中的值向数据帧添加序列号块

基于其他列中数据的列表中单词的频率

在复制其他列数据的同时将值拆分为一列中的行

R:将数据框列中的嵌套JSON转换为同一数据框中的其他列

基于具有数据表的其他两个列的一列的频率计数

将数据框中的一列除以数字,同时取回数据框中的所有其他列

R中的Wordcloud:基于其他列中的数据的颜色

数据框中基于另一列的列的模式

用其他列中的值填充我的数据框中的一列

如何用其他列数据的条件自动填充一列中的行?

根据其他列的输入在数据框中创建一列

根据pyspark数据框中的其他列的值聚合一列

如何使用R将宽数据中的一列中的值分配给其他列

如何基于其他数据帧中的信息减去R个数据帧列?

将一列转换为其他列中具有相同数据的列

根据Pandas数据框中的其他三列更改一列的值

如何在pyspark数据帧中拆分一列并保留其他列?

获取一列数据中每个因子的计数。表被其他两列细分

基于主键从其他列中的数据创建新列

用列表中的数据填充一列,并匹配其他列数据

根据其他数据框值创建一列

(R)我正在尝试使用if()语句引用数据框中的一列以计算其他多个列

通过比较不同数据框中的其他两列来连接一列

基于一列比较两个数据帧(具有不同长度),并检索 r 中的其他列

R - 用其他列数据填充一列

在数据框中创建一列,指示其他列中的值是否连续

将一列数据帧转换为基于其他列的 numpy 数组或张量

R - 基于另一列中的字符串用其他列的值填充数据框的列

Spatialpolygonsdataframe:基于其他列的聚合而不将其转换为数据框?在 r