我如何组织这些数据,以便每个 ID 有一行,每个操作都有一列用于 R 中的每日联系人? [关闭]
Posted
技术标签:
【中文标题】我如何组织这些数据,以便每个 ID 有一行,每个操作都有一列用于 R 中的每日联系人? [关闭]【英文标题】:How do I organize this data so that each ID has one row, and each Action has one column for Daily Contacts in R? [closed] 【发布时间】:2022-01-10 04:39:45 【问题描述】:我的数据集是:
ID | Action | Daily_Contact |
---|---|---|
760 | 5 | |
760 | Text | 4 |
760 | Phone call | 7 |
430 | Phone call | 2 |
430 | 9 | |
430 | Text | 8 |
我希望它看起来像这样,
ID | Text | PhoneCall | |
---|---|---|---|
760 | 5 | 4 | 7 |
430 | 9 | 8 | 2 |
【问题讨论】:
好吧,是什么阻止了你? 【参考方案1】:您可以使用data.table
library(data.table)
dt <- data.table(id, action, Daily_Contact)
dcast(dt, id ~ action, value.var = "Daily_Contact")
## id Email Phone call Text
## 1: 430 9 2 8
## 2: 760 5 7 4
【讨论】:
【参考方案2】:下次,请复制并粘贴 dput(df) 的输出,以便更容易复制。这是一个 tidyverse 解决方案。
df <- data.frame(id=c(760,760,760,430,430,430),
action=c("email","text","phone","phone","email","text"),
daily_contact=c(5,4,7,2,9,8))
df %>%
group_by(id) %>%
pivot_wider(names_from = action, values_from = daily_contact)
编辑: TarJae 的评论是正确的。它也适用于我。
df %>%
pivot_wider(names_from = action, values_from = daily_contact)
【讨论】:
你不需要group_by
:pivot_wider(df, names_from = action, values_from = daily_contact)
以上是关于我如何组织这些数据,以便每个 ID 有一行,每个操作都有一列用于 R 中的每日联系人? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何组织一个包含多个包的 python 项目,以便包中的每个文件仍然可以单独运行?