R 用户旅程路径

R 用户旅程路径,r,string,text-analysis,R,String,Text Analysis,我有以下数据集: ID IntNo Conv Path 743479 4 0 homepage 743479 3 0 page1 743479 2 0 page2 743479 1 0 page3 743479 0 1 page4 746523 2

我有以下数据集:

     ID   IntNo   Conv          Path
 743479       4      0      homepage
 743479       3      0         page1
 743479       2      0         page2
 743479       1      0         page3
 743479       0      1         page4
 746523       2      0      homepage
 746523       1      0         page3
 746523       0      1         page4
1225709       1      0      homepage
1225709       0      1         page4
我希望得到如下输出:

Path                                 Conv
homepage>page1>page2>page3>page4        1
homepage>page3>page4                    1
homepage>page4                          1
为此,我使用了以下代码:

users_path <-  lapply(unique(datset$ID), 
                function(x)  list( path= paste(dataset[dataset$ID==x,'Path'],  sep="", collapse=">"), 
                                   total_conversions= length( datset[dataset$ID==x,'Path']) ) )

users_path<-do.call('rbind', users_path)
users_path<-data.frame(users_path)

您能帮我识别错误吗?

如果您的数据在data.table中,请执行以下操作:

library(data.table)

dt <- as.data.table(df)
dt[, list(Path = paste(Path, sep="", collapse=">")), by = ID][, list(Total_conversions = .N), by = Path]
库(data.table)
dt对不起

代码是正确的。我把这张表读作数据表

 dataset<-data.frame(dataset)

dataset下次请使用
dput(dataframe)
让我们快速创建dataframe。不像bro那样。实际的数据帧。然后粘贴输出。像dput(dataframeNAME)一样,然后粘贴输出。@MaxPD在这种情况下很容易使用
df Oh ok。以前从未使用过dput。很抱歉对无复制代码进行向下投票,有一个
数据集
数据集
不知道是什么。接收到一个错误,即“by”或“keyby”列表中的项目是长度(24900)。每个项目必须与x中的行或i(7316)返回的行数相同。“当运行第一部分
dt[,list(Path=paste)时,您得到了什么?”(Path,sep=“”,collapse=“>”),by=ID]
?为什么不像在
setDT(df)[,,(Total_conversions=sum(Conv),Path=paste(Path,collapse=“>”),by=ID]中那样一步到位呢?
?堆栈溢出不是一个论坛,请花点时间阅读和。如果此代码有效,您没有告诉
datset
…1)有一个输入错误,2)你的环境不干净,你会得到意想不到的结果,3)前面两个的组合。
 dataset<-data.frame(dataset)
users_path <-  lapply(unique(datset$ID), 
            function(x)  list( path= paste(dataset[dataset$ID==x,'Path'],  sep="", collapse=">"), 
                               total_conversions= length( datset[dataset$ID==x,'Path']) ) )
users_path<-do.call('rbind', users_path)