首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >R演播室的平地和分位数分裂

R演播室的平地和分位数分裂
EN

Stack Overflow用户
提问于 2022-09-06 07:20:50
回答 1查看 65关注 0票数 0

我正在寻求一些帮助,如何将我的数据帧中的一列转换为其他基于它的列,即梯田和四分位数。我希望有一组的两个较低的梯田分裂和3个下四分位数的四分位数分裂。我正在评估门槛效应,并希望在这方面提供任何帮助。例如,这是我用于中间分割的代码。

代码语言:javascript
代码运行次数:0
运行
复制
honourswork %>% mutate(medianpcr = median(PCR.x)) %>%
  mutate(lowmedian = ifelse(PCR.x <= medianpcr, 1, 0)) -> honourswork
EN

回答 1

Stack Overflow用户

发布于 2022-09-06 07:58:24

您可以使用quantilecut来存储数据。

代码语言:javascript
代码运行次数:0
运行
复制
honourswork %>%
  mutate(
    lowmedian = as.integer(PCR.x <= median(PCR.x)),
    tertile = cut(PCR.x, quantile(PCR.x, c(0, (2:3)/3)), 
                  labels = c("two lower tertiles", "upper tertile")),
    quartile = cut(PCR.x, quantile(PCR.x, c(0, (3:4)/4)), 
                   labels = c("three lower quartiles", "upper quartile"))
  )

编辑

若要将梯田和四分位数组作为整数0/1而不是因子,请运行以下命令。

代码语言:javascript
代码运行次数:0
运行
复制
honourswork %>%
  mutate(
    lowmedian = as.integer(PCR.x <= median(PCR.x)),
    tertile = findInterval(PCR.x, quantile(PCR.x, c(0, (2:3)/3))), 
    quartile = findInterval(PCR.x, quantile(PCR.x, c(0, (3:4)/4)))
  ) %>%
  mutate(
    tertile = if_else(tertile == 2L, 0L, tertile),
    quartile = if_else(quartile == 2L, 0L, quartile)
  )
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73618145

复制
相关文章

相似问题

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