【问题标题】:Create new columns with length of groups in dplyr在 dplyr 中创建具有组长度的新列
【发布时间】:2019-08-23 19:47:48
【问题描述】:

我正在尝试创建一个新的数据框,该数据框按一列(即下面的 Petal.Width)分组,并具有从另一个变量(即 Species)的组创建的新列以及每个变量的观察数物种群。我认为 dplyr 能够做到这一点,但我不能完全得到我需要的东西

我已经尝试过这段代码,但它返回的是 Species 中所有观察值的长度,而不是每组的长度(即所有列都有相同的数据)

iris=as.data.frame(iris)
groups= iris %>%
  group_by(Petal.Width) %>%
  summarize(Seposa=length(Species == "seposa"),
        Versicolor=length(Species == "versicolor"),
        Virginica=length(Species == "virginica"))

我想我只是在某个地方犯了一个小错误。请帮忙!

【问题讨论】:

  • 听起来你想要sum(...) 而不是length(...)。另外,我认为您将“setosa”拼写为“seposa”......

标签: r dplyr


【解决方案1】:

正如@Z.Lin 所说,您在示例中需要 sum() 而不是 length,但使用此方法至关重要的是不要拼错。

这是另一种方法:

library(dplyr)

iris=as.data.frame(iris)

iris %>%
  group_by(Petal.Width, Species) %>%
  count() %>%
  spread(Species, n, fill = 0)

【讨论】:

    猜你喜欢
    • 2019-10-28
    • 1970-01-01
    • 1970-01-01
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    相关资源
    最近更新 更多