相关疑难解决方法(0)

添加包含整数列的分箱值的列

我有一个包含几列的数据框,其中一列是rank,一个介于1和20之间的整数.我想创建另一个包含bin值的列,如"1-4","5-10","11- 15","16-20".

这样做最有效的方法是什么?

我看起来像这样的数据框(.csv格式):

rank,name,info
1,steve,red
3,joe,blue
6,john,green
3,liz,yellow
15,jon,pink
Run Code Online (Sandbox Code Playgroud)

我想在数据框中添加另一列,所以它会是这样的:

rank,name,info,binValue
1,steve,red,"1-4"
3,joe,blue,"1-4"
6,john,green, "5-10"
3,liz,yellow,"1-4"
15,jon,pink,"11-15"
Run Code Online (Sandbox Code Playgroud)

我现在这样做的方式不起作用,因为我想保持data.frame完好无损,如果df $的值在给定范围内,则只添加另一列.谢谢.

r r-faq

21
推荐指数
2
解决办法
2万
查看次数

使用mutate对数字变量进行分类

我想在我的data.frame对象中使用dplyr(并且不知道如何操作)对数值变量进行分类.

没有dplyr,我可能会这样做:

df <- data.frame(a = rnorm(1e3), b = rnorm(1e3))
df$a <- cut(df$a , breaks=quantile(df$a, probs = seq(0, 1, 0.2)))
Run Code Online (Sandbox Code Playgroud)

它会完成.但是,我更喜欢在我执行的其他操作的序列中使用某些dplyr函数(mutate我想).chaindata.frame

r categorization dplyr

19
推荐指数
2
解决办法
2万
查看次数

在相等长度的区间中划分一系列值:cut vs cut2

我正在使用cut函数将我的数据拆分为相同的bin,它可以完成工作,但我对它返回值的方式不满意.我需要的是箱子的中心而不是上端和下端.
我也尝试过使用cut2{Hmisc},这给了我每个箱子的中心,但是它在包含相同数量的观察的箱子中划分数据范围,而不是长度相同.

有人有解决方案吗?

r hmisc

13
推荐指数
2
解决办法
2万
查看次数

根据范围在R中创建分类变量

我有一个带有整数列的数据框,我想用它作为参考来创建一个新的分类变量.我想将变量分成三组并自己设置范围(即0-5,6-10等).我试过cut但是根据正态分布将变量分成组,我的数据是正确的.我也尝试使用if/then语句,但这会输出一个真/假值,我想保留原始变量.我确信有一种简单的方法可以做到这一点,但我似乎无法弄明白.有关简单方法的任何建议吗?

我有这样的想法:

x   x.range
3   0-5
4   0-5
6   6-10
12  11-15
Run Code Online (Sandbox Code Playgroud)

r r-faq

9
推荐指数
2
解决办法
2万
查看次数

R中的等频离散化

我在R中找到执行等频离散化的函数时遇到了麻烦.我偶然发现了'infotheo'软件包,但经过一些测试后发现算法被破坏了.CRAN似乎不再支持"dprep".

编辑:

为清楚起见,我不需要分隔箱之间的值.我真的想要相同的频率,如果一个值最终在两个箱中,则无关紧要.例如:

c(1,3,2,1,2,2) 
Run Code Online (Sandbox Code Playgroud)

应该给一个箱子c(1,1,2)和一个c(2,2,3)

r

5
推荐指数
3
解决办法
9284
查看次数

在 ggplot2 直方图中添加与 bin 高度相同的选定观测值的标签

我想为直方图中的某些观察添加“id”注释。

到目前为止,我可以毫无问题地添加注释,但我希望注释的 'y' 位置是 bin + 1 的计数(出于审美原因)。

这是我到目前为止:

library(tidyverse)
library(ggrepel)

selected_obs <- c("S10", "S100", "S245", "S900")
set.seed(0)
values <- rnorm(1000)
plot_df <- tibble(id = paste0("S", 1:1000),
                  values = values) %>%
    mutate(obs_labels = ifelse(id %in% selected_obs, id, NA))

ggplot(plot_df, aes(values)) +
    geom_histogram(binwidth = 0.3, color = "white") +
    geom_label_repel(aes(label = obs_labels, y = 100))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我已经看到多个答案处理使用geom_text(stat = count", aes(y=..count.., label=..count..).

基于此,我尝试了这两种解决方法,但没有成功:

  1. geom_label_repel(stat = "count", aes(label = obs_labels, y = ..count..)) 产生:“错误:geom_label_repel 需要以下缺失的美学:标签”
  2. geom_label_repel(aes(label = obs_labels, y = ..count..)) 产生“错误:美学必须是有效的计算统计数据。有问题的美学:y …

r ggplot2

5
推荐指数
1
解决办法
318
查看次数

分组数据,按组查找结果,使用R绘图

预安装的地震数据集有5个变量和1000个观测值.

我想要创建的简单图表应该按地震深度类别显示平均地震震级(即Y轴=幅度,X轴=深度类别).

在这个数据集中,地震深度变量范围从40到680.我想将1000次地震深度观测分为8类,例如40 - 120,121 - 200,...... 600 - 680.然后,我会喜欢按深度类别取平均地震震级并将其绘制在折线图上.

我很感激任何帮助.谢谢!

r

4
推荐指数
1
解决办法
2万
查看次数

标签 统计

r ×7

r-faq ×2

categorization ×1

dplyr ×1

ggplot2 ×1

hmisc ×1