如何在不同的bin中剪切数字并使用新的bin扩展数据框?

博索莱尔先生

我想计算一些非常简单的东西,但是找不到解决方案。我想将垃圾箱切成一定数量,但是我想保存垃圾箱。

bin.size = 100 
df = data.frame(x =c(300,400), 
                y = c("sca1","sca2"))
cut(df$x, seq(0, 400, bin.size), 
    include.lowest = TRUE)

给我

[1] (200,300] (300,400]
Levels: [0,100] (100,200] (200,300] (300,400]

但是我想要这样的东西:

        bin    y
1   (0,100] sca1
2 (100,200] sca1
3 (200,300] sca1
4   (0,100] sca2
5 (100,200] sca2
6 (200,300] sca2
7 (300,400] sca2

我想这样做是因为我想计算在100的bin中输入的值的数量。例如:

df2 = data.frame(snp = c(1,2,10,100,1,2,14,16,399), 
                 sca = c("sca1","sca1","sca1","sca1","sca2","sca2","sca2","sca2","sca2"))
df2
  snp  sca
1   1 sca1
2   2 sca1
3  10 sca1
4 100 sca1
5   1 sca2
6   2 sca2
7  14 sca2
8  16 sca2
9 399 sca2

snp可以是向量sca1中的位置。

最终目标是获得如下内容:

        bin    y num
1   (0,100] sca1   4
2 (100,200] sca1   0
3 (200,300] sca1   0
4   (0,100] sca2   4
5 (100,200] sca2   0
6 (200,300] sca2   0
7 (300,400] sca2   1

我能做的最好的事情是:

df2$cat = cut(df2$snp, seq(0, 400, bin.size), 
include.lowest = TRUE)
df2
  snp  sca       cat
1   1 sca1   [0,100]
2   2 sca1   [0,100]
3  10 sca1   [0,100]
4 100 sca1   [0,100]
5   1 sca2   [0,100]
6   2 sca2   [0,100]
7  14 sca2   [0,100]
8  16 sca2   [0,100]
9 399 sca2 (300,400]

或这个:

table(df2$cat,df2$sca)
            sca1 sca2
  [0,100]      4    4
  (100,200]    0    0
  (200,300]    0    0
  (300,400]    0    1

但是最后一次尝试的问题是类别(300,400]不合理,sca1因为它不存在。它应该出现NA或不出现。怎么解决呢?

r2evans

这是使用来自的一些软件包的一种方法tidyverse

library(dplyr)
library(tidyr)
library(purrr)

df %>%
  left_join(nest(df2, snp, .key = "snp"), by = c("y" = "sca")) %>%
  mutate(
    cuts = map(x, ~ seq(0, ., by = 100)),
    tbls = pmap(
      .l = list(snp, cuts),
      .f = function(xx, breaks) {
        z <- table(cut(xx$snp, breaks))
        data_frame(cut = names(z), count = z)
      }
    )
  ) %>%
  select(y, tbls) %>%
  unnest()
#      y       cut count
# 1 sca1   (0,100]     4
# 2 sca1 (100,200]     0
# 3 sca1 (200,300]     0
# 4 sca2   (0,100]     4
# 5 sca2 (100,200]     0
# 6 sca2 (200,300]     0
# 7 sca2 (300,400]     1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在R中设置不同的中断并剪切数据

来自分类Dev

熊猫数据框列剪切-在均值附近更频繁地添加更多bin

来自分类Dev

如何在Pandas / Dask中按具有可变bin的列离散大型数据框

来自分类Dev

在使用具有剪切和粘贴功能的Apps脚本时,如何处理Google表单中的新数据?

来自分类Dev

如何在数据框中按行应用函数以在r中生成新的或扩展的数据框

来自分类Dev

如何在Visual Studio代码扩展中检测复制和剪切动作?

来自分类Dev

如何在Visual Studio代码扩展中检测复制和剪切动作?

来自分类Dev

如何从文件中剪切数据?

来自分类Dev

如何在不同的输入参数中应用相同的函数在pandas数据框中创建新列?

来自分类Dev

如何在Mac OS文件打开对话框中剪切/粘贴文件路径?

来自分类Dev

如何使用汇总和剪切命令为每个年龄段构建新数据

来自分类Dev

如何在R数据帧中剪切乳胶首字母缩写链

来自分类Dev

如何在R中扩展大数据框

来自分类Dev

如何在R中扩展大数据框

来自分类Dev

如何在 Scala/Spark 的数据框中扩展数组

来自分类Dev

如何在〜/ .local / bin中添加〜/ .local / bin?

来自分类Dev

如何在具有扩展条件的同时在数据框中创建具有多个条件的新列?

来自分类Dev

如何在两个不同列表中包含的基于数据框的值中创建新列?

来自分类Dev

如何基于.bin或.vdi文件生成新的Vagrant框?

来自分类Dev

如何在数据框中添加变量而不是数字?

来自分类Dev

如何在R中调用名为数字的数据框?

来自分类Dev

在数据框中的bin上获取数据透视表

来自分类Dev

如何在数据框中提取年和周的数字并将其放在新列python中

来自分类Dev

如何在以数字命名的数据框中使用for循环

来自分类Dev

使用R中的剪切功能剪切数据时显示空组

来自分类Dev

如何在bash中使用sed / awk从模式中剪切字符串直到模式

来自分类Dev

在R中如何对tibble数据进行bin?

来自分类Dev

尝试通过剪切创建bin列时出错

来自分类Dev

如何在Matlab中显示.bin图像?

Related 相关文章

  1. 1

    如何在R中设置不同的中断并剪切数据

  2. 2

    熊猫数据框列剪切-在均值附近更频繁地添加更多bin

  3. 3

    如何在Pandas / Dask中按具有可变bin的列离散大型数据框

  4. 4

    在使用具有剪切和粘贴功能的Apps脚本时,如何处理Google表单中的新数据?

  5. 5

    如何在数据框中按行应用函数以在r中生成新的或扩展的数据框

  6. 6

    如何在Visual Studio代码扩展中检测复制和剪切动作?

  7. 7

    如何在Visual Studio代码扩展中检测复制和剪切动作?

  8. 8

    如何从文件中剪切数据?

  9. 9

    如何在不同的输入参数中应用相同的函数在pandas数据框中创建新列?

  10. 10

    如何在Mac OS文件打开对话框中剪切/粘贴文件路径?

  11. 11

    如何使用汇总和剪切命令为每个年龄段构建新数据

  12. 12

    如何在R数据帧中剪切乳胶首字母缩写链

  13. 13

    如何在R中扩展大数据框

  14. 14

    如何在R中扩展大数据框

  15. 15

    如何在 Scala/Spark 的数据框中扩展数组

  16. 16

    如何在〜/ .local / bin中添加〜/ .local / bin?

  17. 17

    如何在具有扩展条件的同时在数据框中创建具有多个条件的新列?

  18. 18

    如何在两个不同列表中包含的基于数据框的值中创建新列?

  19. 19

    如何基于.bin或.vdi文件生成新的Vagrant框?

  20. 20

    如何在数据框中添加变量而不是数字?

  21. 21

    如何在R中调用名为数字的数据框?

  22. 22

    在数据框中的bin上获取数据透视表

  23. 23

    如何在数据框中提取年和周的数字并将其放在新列python中

  24. 24

    如何在以数字命名的数据框中使用for循环

  25. 25

    使用R中的剪切功能剪切数据时显示空组

  26. 26

    如何在bash中使用sed / awk从模式中剪切字符串直到模式

  27. 27

    在R中如何对tibble数据进行bin?

  28. 28

    尝试通过剪切创建bin列时出错

  29. 29

    如何在Matlab中显示.bin图像?

热门标签

归档