我希望 "EVENT_ID" 中的所有值相对于 "Email_ID" 以单独列的形式显示
I want to all the values in the "EVENT_ID" to be displayed in the form of separate columns with respect to the "Email_ID"
电子邮件 ID 具有重复值,对应于存在唯一事件 ID。我想在 table 中对其进行转换,以便对于每个电子邮件 ID,所有事件 ID 都应列在不同的列中
这是在 R 中的实现方式:
我们从一个包含 2 个字段、电子邮件和事件的数据集开始:
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
到目前为止,我们有 2 封不同的电子邮件和 4 个事件。
使用 dcast 函数,您应该能够创建所需的枢轴 table。
library(reshape2) # needed to use the dcast function
df.new <- dcast(df, email ~ event)
df.new
email event1 event2 event3 event4
1 jane.doe@mysite.com <NA> event2 <NA> event4
2 john.doe@mysite.com event1 <NA> event3 <NA>
所以第一条新记录包含:
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>
更多信息:
https://www.r-bloggers.com/pivot-tables-in-r/
谢谢
如果您愿意,也可以使用 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
哪个returns
email event1 event2 event3 event4
1 jane.doe@mysite.com <NA> event2 <NA> event4
2 john.doe@mysite.com event1 <NA> event3 <NA>
电子邮件 ID 具有重复值,对应于存在唯一事件 ID。我想在 table 中对其进行转换,以便对于每个电子邮件 ID,所有事件 ID 都应列在不同的列中
这是在 R 中的实现方式:
我们从一个包含 2 个字段、电子邮件和事件的数据集开始:
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
到目前为止,我们有 2 封不同的电子邮件和 4 个事件。
使用 dcast 函数,您应该能够创建所需的枢轴 table。
library(reshape2) # needed to use the dcast function
df.new <- dcast(df, email ~ event)
df.new
email event1 event2 event3 event4
1 jane.doe@mysite.com <NA> event2 <NA> event4
2 john.doe@mysite.com event1 <NA> event3 <NA>
所以第一条新记录包含:
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>
更多信息: https://www.r-bloggers.com/pivot-tables-in-r/
谢谢
如果您愿意,也可以使用 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
哪个returns
email event1 event2 event3 event4
1 jane.doe@mysite.com <NA> event2 <NA> event4
2 john.doe@mysite.com event1 <NA> event3 <NA>