【问题标题】:DPLYR Mutate function to "transmute"?DPLYR Mutate 函数要“transmute”?
【发布时间】:2017-10-14 10:28:34
【问题描述】:

几周前我刚刚开始学习 R。我在尝试将性别行转换为列时遇到了一些问题(如果这是正确的 R 术语?)。

    > brfss %>%
    +     filter(hours1 >=1,hours1 <=24) %>%
    +     group_by(hours1, gender) %>%
    +     summarise(count = n())
    # A tibble: 48 x 3
    # Groups:   hours1 [?]
       hours1   gender count
          <int> <fctr> <int>
     1        1   Male    96
     2        1 Female   132
     3        2   Male   464
     4        2 Female   612
     5        3   Male  1433
     6        3 Female  2063
     7        4   Male  5749
     8        4 Female  8512
     9        5   Male 13231
    10        5 Female 20205

    # ... with 38 more rows

我想将列显示为:

    hours1   Male  Female count

基本上将整个男性/女性转变为列而不是行。有人可以给我一些指示吗?谢谢。

【问题讨论】:

标签: r dplyr


【解决方案1】:

你可以试试这样的:

library(dplyr)
library(tidyr)
library(magrittr)

brfss2013 %>% 
  select(hours1 = sleptim1, gender = sex) %>% 
  na.omit() %>%
  group_by(hours1, gender) %>%
  summarize(count = n()) %>%
  spread(key = gender, value = count)

【讨论】:

  • 嗨,谢谢,第二个是我想要实现的。刚刚安装了 tidyr 包。当我运行它时它说: brfss %>% spread(key = gender, value = count) 中的错误:找不到函数“%>%”另外,我在以前的代码中包含了 count = n(),如何这里的计数计算?
  • 数据来源来自 2013 年 BRFSS 调查:d3c33hcgiwev3.cloudfront.net/…
  • 我正在使用来自 sleptim1、sex 的数据来尝试填充 sleptim1、男性、女性、计数/总数(稍后我可以对其进行变异以将男性和女性相加)@jsb跨度>
  • sleptim1你叫hours1吗?
  • 现在更新了我的答案。
【解决方案2】:

试试这个.. brfss %>% 传播(键=性别,值=性别)%>% 选择(小时1,男,女,计数)

【讨论】:

    猜你喜欢
    • 2021-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多