数据表分配不起作用

用户名

好的,所以我正在清理大型数据集,并尝试通过将数据框架代码更改为数据表来加快处理速度。我在有条件分配缺失值代码时遇到麻烦。玩具示例:

    X = data.table(grp=c("a","a","b","b","b","c","c","d","d","d","d"), 
    foo=c(1:4,NA,6:7,NA,8:10))
    setkey(X,grp)
    err.code <-"1111"
    row.select <- row.names(X)[X$grp=="b" & is.na(X$foo)]

    # Replace missing value for group b with err.code
    X[row.select, foo:=err.code]

因此,我想将err.code放入符合条件的特定单元格中。但是以上内容并未分配任何内容。例如

    > X
        grp foo
     1:   a   1
     2:   a   2
     3:   b   3
     4:   b   4
     5:   b  NA
     6:   c   6
     7:   c   7
     8:   d  NA
     9:   d   8
    10:   d   9
    11:   d  10

我在这里想念什么?

A5C1D2H2I1M1N2O1R2T1

我看到两个问题:

  1. 您正在尝试用字符替换数字列中的值。data.table除非您明确地将列类型转换为彼此匹配,否则不会这样。
  2. 您正在尝试用字符值“ 5”而不是数字值5索引行。

因此,以下应工作:

err.code <- 1111
row.select <- as.numeric(row.names(X)[X$grp=="b" & is.na(X$foo)])
X[row.select, foo := err.code][]
#     grp  foo
#  1:   a    1
#  2:   a    2
#  3:   b    3
#  4:   b    4
#  5:   b 1111
#  6:   c    6
#  7:   c    7
#  8:   d   NA
#  9:   d    8
# 10:   d    9
# 11:   d   10

或者,不创建这些额外变量:

X[grp == "b" & is.na(foo), foo := 1111]

如果您认为不同的列类型将成为问题,则需要首先将其明确转换:

err.code <- "1111"
row.select <- as.numeric(row.names(X)[X$grp=="b" & is.na(X$foo)])
X[, foo := as.character(foo)][row.select, foo := err.code][]
#     grp  foo
#  1:   a    1
#  2:   a    2
#  3:   b    3
#  4:   b    4
#  5:   b 1111
#  6:   c    6
#  7:   c    7
#  8:   d   NA
#  9:   d    8
# 10:   d    9
# 11:   d   10
str(.Last.value)
# Classes ‘data.table’ and 'data.frame':    11 obs. of  2 variables:
# $ grp: chr  "a" "a" "b" "b" ...
# $ foo: chr  "1" "2" "3" "4" ...
# - attr(*, ".internal.selfref")=<externalptr> 
# - attr(*, "sorted")= chr "grp"

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

数据表分配不起作用

来自分类Dev

数据表样式不起作用

来自分类Dev

PrimeFaces数据表不起作用

来自分类Dev

数据表不起作用

来自分类Dev

数据表不起作用

来自分类Dev

PrimeFaces数据表不起作用

来自分类Dev

数据表绘制不起作用

来自分类Dev

数据表插件不起作用

来自分类Dev

数据表 ajax 不起作用

来自分类Dev

显示数据表不起作用

来自分类Dev

在Primefaces数据表上分页不起作用

来自分类Dev

<c:when>在PrimeFaces数据表中不起作用?

来自分类Dev

Primefaces数据表过滤器不起作用

来自分类Dev

选择素数数据表不起作用

来自分类Dev

响应数据表上的jQuery事件不起作用

来自分类Dev

设置检查的数据表jQuery循环不起作用

来自分类Dev

基本数据表Ajax配置不起作用

来自分类Dev

Angular数据表fnDraw()不起作用

来自分类Dev

jQuery数据表分页不起作用

来自分类Dev

YUI数据表排序不起作用

来自分类Dev

<c:when>在PrimeFaces数据表中不起作用?

来自分类Dev

数据表的计算方法不起作用

来自分类Dev

数据表比较-主键不起作用

来自分类Dev

数据表日期时间插件不起作用

来自分类Dev

jQuery数据表自动换行不起作用

来自分类Dev

数据表-响应式不起作用?

来自分类Dev

搜索框在数据表中不起作用

来自分类Dev

数据表:导出按钮不起作用

来自分类Dev

列表视图中的 Jquery 数据表不起作用