首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中一列一列地展开,而保留原变量?

在R中一列一列地展开,而保留原变量?
EN

Stack Overflow用户
提问于 2020-10-07 14:18:05
回答 1查看 214关注 0票数 0

我在R中有下表:

代码语言:javascript
复制
 id   | time_visited      | outcome | url_link
 -----|-------------------|---------|-------------------------
   1  |2012-01-01 00:00:00|  1      |google.com
   1  |2012-01-01 00:00:00|  1      |google.com/news
   1  |2012-01-01 00:00:00|  1      |google.com/news/cnn
   2  |2012-01-01 11:11:11|  0      |youtube.com
   2  |2012-01-01 11:11:11|  0      |youtube.com/search
   2  |2012-01-01 11:11:11|  0      |youtube.com/search/catvideos

我试图使用传播数据,使用tidyr()::spread()获得下表:

扩展将在url_link变量上进行,它的值将由结果变量填充-然而,我仍然希望保留结果变量来表示该整体值。

我想要得到的桌子看起来是这样的:

代码语言:javascript
复制
 id   | time_visited      | outcome | google.com | google.com/news | google.com/news/cnn | youtube.com...
 -----|-------------------|---------|------------------------------|---------------------|--------------
   1  |2012-01-01 00:00:00|  1      | 1          |    1            |       1             |    0
   2  |2012-01-01 11:11:11|  0      | 0          |    0            |       0             |    1

我没有将所有的列添加到末尾,因为我没有空格,但这应该意味着它是youtube.com/search和youtube.com/search/ not视频作为另外两个列。

我试过使用以下代码,但仍然没有结果:

df %>% spread(url_link, outcome, -c(time_visited, outcome), fill = outcome)

本质上,尝试将变量url_link扩展到新变量中,并让来自结果变量的值填充它--同时在数据中保留结果变量。

注意:如果id与url_link值相关联,我将尝试创建0/1的标志,所以在google.com值的情况下,它只使用user_id == 1,因此有1标志--对youtube来说,它不是0标志

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-07 14:32:27

也许您可以在获得宽格式的数据之前创建一个outcome变量的副本:

代码语言:javascript
复制
library(dplyr)
library(tidyr)

df %>%
  mutate(outcome1 = outcome) %>%
  pivot_wider(names_from = url_link, values_from = outcome1, values_fill = 0)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64246034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档