【问题标题】:How to split the data into intervals in R如何将数据拆分为R中的间隔
【发布时间】:2021-11-10 11:55:47
【问题描述】:

我有一个包含 2 列的数据框,即 p1 和 p2。我需要将 p1 列拆分为 10-50、50-100、100-150 等值的范围。拆分 p1 的值后,应打印 p2 的相应值。示例输入如下。

df = data.frame(p1 = c(10,20,70,80,150,200),p2 = c(1000, 1111.7, 15522.1, 15729.3,18033.8,19358.2))。

示例输出附在下面。

当我尝试处理大型数据集 p2 与 p1 混合时。

【问题讨论】:

标签: r dataframe intervals


【解决方案1】:

一种方法:

library(dplyr)

df %>%
  mutate(
    p1 = cut(p1, breaks = 0:(max(p1) %/% 50 + 1) * 50, include.lowest = TRUE)
  ) %>%
  group_by(p1) %>%
  summarise(p2 = list(p2))

【讨论】:

  • 感谢您的回复。但是当我尝试处理大型数据集时,p2 与 p1 值混合在一起。你能帮我解决吗?
  • 混的怎么样?能举个例子吗?
【解决方案2】:

也许是这个?

setNames(
  aggregate(
    p2 ~ cut(p1, c(10, 50, 100, 150, 200), include.lowest = TRUE),
    df,
    c
  ), names(df)
)

给予

         p1               p2
1   [10,50]   1000.0, 1111.7
2  (50,100] 15522.1, 15729.3
3 (100,150]          18033.8
4 (150,200]          19358.2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-12
    • 2015-02-15
    • 1970-01-01
    相关资源
    最近更新 更多