gpt4 book ai didi

r - data.table 抛出 "object not found"错误

转载 作者:行者123 更新时间:2023-12-03 22:36:38 24 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





R data.table breaks in exported functions

(1 个回答)


7年前关闭。




我有一个数据表:

library(data.table)
mydt <- data.table(index = 1:10)

当我在全局环境中尝试它时,我正在让它工作,但当我在调试器中或当我在包测试中使用它时却没有。

问题是我不能以标准方式对其进行子集化。
Browse[2]> mydt[,index]
Error in `[.data.frame`(x, i, j) : object 'index' not found
Browse[2]> mydt[,list(index)]
Error in `[.data.frame`(x, i, j) : object 'index' not found

这是一个可重现的示例,其中我创建了一个包,然后在评估名为 myfunction 的函数时出现错误。 :
library(devtools)
setwd(tempdir())
# make dummy package called foo
create("foo")
setwd("foo")

# add data.table as a package dependency
a <- readLines("DESCRIPTION")
depends.idx <- grepl("Depends", a)
a[depends.idx] <- paste0(a[depends.idx], ", data.table")
writeLines(a, "DESCRIPTION")

# create a dummy function
writeLines("myfunction <- function() {a <- data.table(b=1); return(a[,b])}",
"R/foo.R")

# check and throw error
check()
library(foo)
myfunction()

这是 session 信息:
Browse[2]> sessionInfo()
R version 3.0.2 (2013-09-25)
Platform: x86_64-pc-linux-gnu (64-bit)

locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=C LC_COLLATE=C LC_MONETARY=C
[6] LC_MESSAGES=C LC_PAPER=C LC_NAME=C LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=C LC_IDENTIFICATION=C

attached base packages:
[1] stats graphics grDevices utils datasets methods base

other attached packages:
[1] PEcAn.data.atmosphere_1.3.3 data.table_1.9.2 RPostgreSQL_0.4 PEcAn.settings_1.3.3
[5] lubridate_1.3.3 PEcAn.DB_1.3.3 DBI_0.2-7 PEcAn.utils_1.3.3
[9] udunits2_0.6 ncdf4_1.12 randtoolbox_1.14 rngWELL_0.10-2
[13] ggplot2_1.0.0 XML_3.98-1.1 plyr_1.8.1 abind_1.4-0
[17] testthat_0.8.1 devtools_1.5.0.99

loaded via a namespace (and not attached):
[1] MASS_7.3-29 RCurl_1.95-4.1 Rcpp_0.11.2 colorspace_1.2-4 digest_0.6.4 evaluate_0.5.5 grid_3.0.2
[8] gtable_0.1.2 httr_0.3 memoise_0.2.1 munsell_0.4.2 parallel_3.0.2 proto_0.3-10 reshape2_1.4
[15] roxygen2_4.0.1 scales_0.2.4 stringr_0.6.2 tools_3.0.2 whisker_0.3-2

最佳答案

很好的可重复问题!这就是我得到的。你也没有发布你的输出,所以也许你没有得到相同的输出。我已拆分输出并放置 这里 问题可能出在哪里。

$ R
R version 3.1.0 (2014-04-10) -- "Spring Dance"
Copyright (C) 2014 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)

> library(devtools)
> setwd(tempdir())
> # make dummy package called foo
> create("foo")
Creating package foo in .
No DESCRIPTION found. Creating with values:

Package: foo
Title:
Description:
Version: 0.1
Authors@R: # getOptions('devtools.desc.author')
Depends: R (>= 3.1.0)
License: # getOptions('devtools.desc.license')
LazyData: true
> setwd("foo")
>
> # add data.table as a package dependency
> a <- readLines("DESCRIPTION")
> depends.idx <- grepl("Depends", a)
> a[depends.idx] <- paste0(a[depends.idx], ", data.table")
> writeLines(a, "DESCRIPTION")
>
> # create a dummy function
> writeLines("myfunction <- function() {a <- data.table(b=1); return(a[,b])}",
+ "R/foo.R")
>
> # check and throw error
> check()
Loading required package: roxygen2
Updating foo documentation
Loading foo

这里 :
Invalid DESCRIPTION:
Authors@R field gives no person with author role.
Authors@R field gives no person with maintainer role and email address.

See the information on DESCRIPTION files in section 'Creating R packages' of the 'Writing R Extensions' manual.

Loading required package: data.table
data.table 1.9.2 For help type: help("data.table")

Attaching package: ‘data.table’

The following object is masked from ‘package:bit’:

setattr

Updating collate directive in /tmp/Rtmp0h3yz9/foo/DESCRIPTION
Updating namespace directives
Writing foo.Rd
'/usr/lib/R/bin/R' --vanilla CMD build '/tmp/Rtmp0h3yz9/foo' --no-manual --no-resave-data

* checking for file '/tmp/Rtmp0h3yz9/foo/DESCRIPTION' ... OK
* preparing 'foo':

这里 :
* checking DESCRIPTION meta-information ... ERROR
Authors@R field gives no person with author role.
Authors@R field gives no person with maintainer role and email address.

See the information on DESCRIPTION files in section 'Creating R
packages' of the 'Writing R Extensions' manual.

Error: Command failed (1)
> library(foo)
> myfunction()
Error in `[.data.frame`(x, i, j) : object 'b' not found
>

关于r - data.table 抛出 "object not found"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24501245/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com