【问题标题】:How can I create 6 bins and count all values that fall in each bin?如何创建 6 个 bin 并计算每个 bin 中的所有值?
【发布时间】:2015-08-18 14:21:53
【问题描述】:

我有一些相关矩阵。我想看看有多少值落在 6 个 bin 中,如下所示; bin 1:0 到 0.1、0.1 到 0.2、0.2 到 0.3、0.3 到 0.4、0.4 到 0.5 和 0.5 到 1。

我的矩阵: dput(head(x3,n=1)) structure("1 0.0118056267220191 0.0698430295769578 0.147675160526577 -0.240526687986192 -0.240526687986192 NA -0.0864263397068391 0.0472030857452077 0.144075169217511 -0.169335298346717 -0.136657358184974 0.0997757565385112 0.0318247578607896 -0.121466138394709 0.0698430295769578 0.0372342961702855 0.162822402256459 0.0698430295769578 -0.228614978429606 -0.00325644804512918 -0.0864263397068391 0.128784183243357 0.0698430295769578 0.0772194756468332 -0.0850262968762965 -0.0850262968762965 -0.0850262968762965 -0.35016924446602 0.0440944056879946 -0.171996312074949 0.144075169217511 0.150114837624665 0.0698430295769578 0.0698430295769578 0.0772194756468332 -0.0238936680131698 -0.0900497873763463 0.0997757565385112 -0.0465278278289626 0.0117475463077051 0.0824568591955934 -0.0900497873763463 -0.0257843138721356 0.0723951333229052 -0.286356421265527 0.0698430295769578 0.119512195121951 0.027050089040023 -0.0753353976483616 0.123466199581199 -0.0864263397068391 0.0997757565385112 -0.0396206715348156 0.123466199581199 0.144075169217511 0.180333926933486 0.288860360879251 -0.286356421265527 -0.030022967524933 -0.100304414707211 0.128045554224423 0.292369332798234 0.0997757565385112 -0.0401597420067507 0.0698430295769578 0.0698430295769578 0.0341553188670066 0.0997757565385112 ", .Dim = c(1L, 1L))

我目前没有工作示例。不知道如何处理。

任何帮助将不胜感激。

谢谢。

【问题讨论】:

  • 您可以使用?cut?findInterval。看起来您的 dput 是一个字符串。使用scan 获取各个元素。
  • 好的,将检查这些。谢谢。
  • 试试xNew <- scan(text=x3, what=numeric(), quiet=TRUE);cut(xNew, breaks=c(-Inf,0,0.1,0.2, 0.3, 0.4, 0.5,1))
  • 太棒了,现在试试。稍后会通知您。
  • 对于计数部分,您需要table,如table(cut(xNew, breaks=c(-Inf,0,0.1,0.2, 0.3, 0.4, 0.5,1)))

标签: r correlation bins


【解决方案1】:
vec <- scan(text=x3)
tbl <- table(cut(vec, c(seq(0,.5, .1),1), include.lowest=T))
dimnames(tbl)[[1]] <- gsub(",", "-", gsub("\\[|\\(|\\]", "", dimnames(tbl)[[1]]))
tbl

  0-0.1 0.1-0.2 0.2-0.3 0.3-0.4 0.4-0.5   0.5-1 
     26      12       2       0       0       1 

我添加了一个额外的步骤来使用dimnamesgsub 格式化名称。

数据

x3 <- structure("1 0.0118056267220191 0.0698430295769578 0.147675160526577 -0.240526687986192 -0.240526687986192 NA -0.0864263397068391 0.0472030857452077 0.144075169217511 -0.169335298346717 -0.136657358184974 0.0997757565385112 0.0318247578607896 -0.121466138394709 0.0698430295769578 0.0372342961702855 0.162822402256459 0.0698430295769578 -0.228614978429606 -0.00325644804512918  -0.0864263397068391 0.128784183243357 0.0698430295769578 0.0772194756468332 -0.0850262968762965 -0.0850262968762965 -0.0850262968762965 -0.35016924446602 0.0440944056879946 -0.171996312074949 0.144075169217511 0.150114837624665 0.0698430295769578 0.0698430295769578 0.0772194756468332 -0.0238936680131698 -0.0900497873763463 0.0997757565385112 -0.0465278278289626 0.0117475463077051 0.0824568591955934 -0.0900497873763463 -0.0257843138721356 0.0723951333229052 -0.286356421265527 0.0698430295769578 0.119512195121951 0.027050089040023 -0.0753353976483616 0.123466199581199 -0.0864263397068391 0.0997757565385112 -0.0396206715348156 0.123466199581199 0.144075169217511 0.180333926933486  0.288860360879251 -0.286356421265527 -0.030022967524933 -0.100304414707211 0.128045554224423 0.292369332798234 0.0997757565385112 -0.0401597420067507 0.0698430295769578 0.0698430295769578 0.0341553188670066 0.0997757565385112 ", .Dim = c(1L, 
1L))

【讨论】:

  • 好的,谢谢皮埃尔。我不应该使用 read.table 吗?只对我的原始数据使用扫描?
  • 如果x3 是您的数据扫描的直接输出将起作用。但这取决于您正在使用的特定数据结构。
  • 非常感谢大家。我认为这些选项中的每一个都提供了我正在寻找的东西。我将三重检查并希望它与其他矩阵一致。谢谢!!!!!!
  • 是的,皮埃尔,我必须回到原来的状态。我已经把它写到一个文件中,所以这给了我错误。你是对的。
猜你喜欢
  • 2019-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-22
  • 1970-01-01
  • 2020-06-12
  • 1970-01-01
  • 2021-08-21
相关资源
最近更新 更多