R 我想把“中的所有值”;事件“ID”;以单独列的形式显示与“;电子邮件“U ID”;

R 我想把“中的所有值”;事件“ID”;以单独列的形式显示与“;电子邮件“U ID”;,r,dplyr,tidyr,R,Dplyr,Tidyr,电子邮件Id具有重复值,并且对应于存在唯一事件Id。我想在表中对其进行转换,以便每个电子邮件id的所有事件id都应在不同的列中列出 我们从一个包含两个字段的数据集开始,即电子邮件和事件: email <- c("john.doe@mysite.com", "jane.doe@mysite.com") event <- c("event1", "event2", "event3", "event4") df <- as.data.frame(cbind(email, even

电子邮件Id具有重复值,并且对应于存在唯一事件Id。我想在表中对其进行转换,以便每个电子邮件id的所有事件id都应在不同的列中列出

我们从一个包含两个字段的数据集开始,即电子邮件和事件:

email <- c("john.doe@mysite.com", "jane.doe@mysite.com")

event <- c("event1", "event2", "event3", "event4")

df <- as.data.frame(cbind(email, event), stringsAsFactors = F)

df

  email               event
1 john.doe@mysite.com event1
2 jane.doe@mysite.com event2
3 john.doe@mysite.com event3
4 jane.doe@mysite.com event4

电子邮件如果您愿意,也可以使用
tidyr
完成此操作:

email <- c("john.doe@mysite.com", "jane.doe@mysite.com")
event <- c("event1", "event2", "event3", "event4")
df <- as.data.frame(cbind(email, event), stringsAsFactors = F)

library(tidyr)

df <- df %>%
  spread(event, event)
df

电子邮件请提供一些示例数据和一些您试图解决问题的代码。谢谢,这真的很有帮助。
df.new[1,]

  email                 event1 event2 event3 event4
1 jane.doe@mysite.com   <NA>   event2 <NA>   event4
df.new[2,]

  email               event1 event2 event3 event4
2 john.doe@mysite.com event1 <NA>   event3 <NA>
email <- c("john.doe@mysite.com", "jane.doe@mysite.com")
event <- c("event1", "event2", "event3", "event4")
df <- as.data.frame(cbind(email, event), stringsAsFactors = F)

library(tidyr)

df <- df %>%
  spread(event, event)
df
                email event1 event2 event3 event4
1 jane.doe@mysite.com   <NA> event2   <NA> event4
2 john.doe@mysite.com event1   <NA> event3   <NA>