将数据帧中定义的间隔映射到向量

托马斯·格里夫(Tomas Greif)

我有一个带有间隔定义的数据框:

ints <- read.table(header=T, sep=";", stringsAsFactors = FALSE, na.strings = 'NA', text="
minValue;minOperato;maxValue;maxOperator;class
3914;>=;NA;NA;[3914,Inf)
NA;NA;1373;<;[ -Inf,1373)
1373;>=;1806;<;[1373,1806)
2777;>=;3914;<;[2777,3914)
1806;>=;2777;<;[1806,2777)
")

第二个数据帧带有值x和二进制变量y

sd <- data.frame(x = runif(1000) * 5000, y = as.integer(runif(1000) > .5))

现在,我想获取sd每个间隔的数据帧中的零和一的数目,并将结果合并到ints数据帧中。

我以为我会用cut

breaks <- c(-Inf, ints$minValue[order(ints$minValue)], Inf)
breaks <- breaks[!is.na(breaks)]
out <- as.data.frame.matrix(table(cut(sd$x, breaks, right = FALSE), sd$y))

不幸的是,在时间间隔out不与我间隔匹配ints的数据帧(被不同地表示),所以我不能加入outints

我知道我可能可以使用sqldfpackage或ints$x在某些循环中重新编码来生成一些sql ,但这会很慢。

研究

一种解决方案是用一个简单的id(一个序列)替换您的间隔。应该对int和out.data.frames进行此操作。每个ID标识一个间隔。一旦执行此操作,合并就很简单了。

## first I extract the intevals from ints in ordered manner
id <- !is.na(ints$minValue)&!is.na(ints$maxValue)
class_factor <- 
  c(ints$class[which(is.na(ints$minValue))],
     ints$class[id][order(ints$minValue[id])],
     ints$class[which(is.na(ints$maxValue))])

## add an id column that identify each interval in ints data.frame
ints <- merge(data.frame(class=class_factor,id = seq_along(class_factor)),ints)

##  Do same thing in out uisng lables=FALSE  as a cut argument
out <- as.data.frame.matrix(table(cut(sd$x, breaks, right = FALSE,
         labels=FALSE), sd$y))  ## here the trick 

## merge ints and out 
merge(out,ints,by.x=0,by.y="id")

#     Row.names   0   1        class minValue minOperato maxValue maxOperator
#   1         1 132 146 [ -Inf,1373)       NA       <NA>     1373           <
#   2         2  45  38  [1373,1806)     1373         >=     1806           <
#   3         3  98  99  [1806,2777)     1806         >=     2777           <
#   4         4  98 110  [2777,3914)     2777         >=     3914           <
#   5         5 125 109   [3914,Inf)     3914         >=       NA        <NA>

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将h4映射到数据帧Beautifulsoup python中的div兄弟姐妹

来自分类Dev

如何将元素向量映射到UICollectionView网格中?

来自分类Dev

如何将Grails中的类型映射到oracle数据库中的用户定义类型

来自分类Dev

将向量聚合到数据帧中

来自分类Dev

嵌套映射到Clojure中的嵌套向量

来自分类Dev

嵌套映射到Clojure中的嵌套向量

来自分类Dev

将Laravel中的数据映射到JSON对象

来自分类Dev

将动态数据集映射到JFreeChart中的不同轴

来自分类Dev

Django:将数据从外部API映射到模型中?

来自分类Dev

如何将列表中的数据映射到元组?

来自分类Dev

将多个项目映射到熊猫数据框中的值

来自分类Dev

将字典值映射到数据框列中的键值

来自分类Dev

将Laravel中的数据映射到JSON对象

来自分类Dev

将子字符串从数据帧映射到作为新列的返回值

来自分类Dev

将函数映射到两个不等长的数据帧

来自分类Dev

将值从向量映射到数据框:计算百分位数

来自分类Dev

使用external()将函数向量映射到输入向量

来自分类Dev

将数字映射到R中的数字向量中的最小值

来自分类Dev

熊猫将数据帧切为间隔,如果在间隔中则获取值

来自分类Dev

将向量列表转换为R中的数据帧

来自分类Dev

将向量列表与R中的数据帧列表合并

来自分类Dev

将数据帧中的行与向量常量合并

来自分类Dev

将向量列表转换为R中的数据帧

来自分类Dev

将时间序列值的Ruby数组映射到加权间隔

来自分类Dev

将火车数据映射到元数据

来自分类Dev

在R中,将列类映射到没有for循环的字符向量

来自分类Dev

如何将向量映射到R中的其他范围?

来自分类Dev

数据帧中数据的绘制间隔

来自分类Dev

向量列表中的数据帧

Related 相关文章

热门标签

归档