首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bit64 NA不会在data.frame构造函数中复制

bit64 NA不会在data.frame构造函数中复制
EN

Stack Overflow用户
提问于 2020-08-06 15:09:27
回答 1查看 40关注 0票数 4

在构造数据帧时,如果长度不同,则复制列。

代码语言:javascript
复制
> data.frame(x = c(1,2), y = NA_integer_)
  x  y
1 1 NA
2 2 NA

然而,当我尝试用bit64::NA_integer64_来做这件事时,我会得到一个错误。有人知道会发生什么吗?如果rep()bit64::NA_integer64_上单独调用,它就能工作。

代码语言:javascript
复制
> data.frame(x = c(1,2), y = bit64::NA_integer64_)
Error in data.frame(x = c(1, 2), y = bit64::NA_integer64_) : 
  arguments imply differing number of rows: 2, 1
> rep(bit64::NA_integer64_, 2)
integer64
[1] <NA> <NA>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-28 13:46:18

data.frame将只回收:

names

  • factor

  • AsIs character

  • Date

  • POSIXct

以外没有其他属性的

  • 向量

tibble没有这个问题。

代码语言:javascript
复制
tibble::tibble(x = c(1,2), y = bit64::NA_integer64_)
#> # A tibble: 2 x 2
#>       x       y
#>   <dbl> <int64>
#> 1     1      NA
#> 2     2      NA

下面是来自data.frame的相关片段

代码语言:javascript
复制
for (i in seq_len(n)[nrows < nr]) {
    xi <- vlist[[i]]
    if (nrows[i] > 0L && (nr%%nrows[i] == 0L)) {
        xi <- unclass(xi)
        fixed <- TRUE
        for (j in seq_along(xi)) {
            xi1 <- xi[[j]]
            if (is.vector(xi1) || is.factor(xi1)) 
              xi[[j]] <- rep(xi1, length.out = nr)
            else if (is.character(xi1) && inherits(xi1, "AsIs")) 
              xi[[j]] <- structure(rep(xi1, length.out = nr), 
                class = class(xi1))
            else if (inherits(xi1, "Date") || inherits(xi1, "POSIXct")) 
              xi[[j]] <- rep(xi1, length.out = nr)
            else {
              fixed <- FALSE
              break
            }
        }
        if (fixed) {
            vlist[[i]] <- xi
            next
        }
    }
    stop(gettextf("arguments imply differing number of rows: %s", 
        paste(unique(nrows), collapse = ", ")), domain = NA)
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63286549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档