首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

当在.x()中使用data.table函数时,出现"Error in eval(bysub,x,parent.frame()):找不到对象'.x‘“

当在.x()中使用data.table函数时,出现"Error in eval(bysub, x, parent.frame()): 找不到对象'.x'" 是因为在.data.table()函数中没有指定.x参数的值。

.data.table()函数是data.table包中的一个函数,用于创建一个数据表。在使用.data.table()函数创建数据表时,可以通过传递参数.x来指定数据表中的列名。

然而,在.x()中使用data.table函数时,如果没有为.x参数指定值,就会出现"Error in eval(bysub, x, parent.frame()): 找不到对象'.x'"的错误。

解决这个问题的方法是,在调用.data.table()函数时,为.x参数指定一个有效的值,该值应该是一个列名或一个包含列名的向量。

例如,假设我们想要创建一个名为my_table的数据表,并指定两个列名为col1和col2。我们可以使用以下代码来创建数据表:

代码语言:txt
复制
library(data.table)

my_table <- data.table(.x = c("col1", "col2"))

在上面的代码中,我们将.x参数的值设置为一个包含两个列名的字符向量。这样,我们就可以成功地创建名为my_table的数据表。

值得注意的是,上面提到的解决方法仅适用于data.table函数中使用.x参数时出现"Error in eval(bysub, x, parent.frame()): 找不到对象'.x'"的情况。对于其他情况,可能需要进一步分析和调试以确定导致错误的原因和解决方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

R语言性能Tips和GC

希望博主的这篇博客可以帮助您理解R的内存管理基础知识,从单个对象函数,再到更大的代码块。 何为GC(garbage collection)?...1.当name为0, 没有任何object使用它,可以删掉. 2.当name为1, 正在有表达式在用它,所以复制了一份。...envir=parent.frame()) gc(verbose = FALSE) } a<-c(1:1000) r_release("a") 输出为: Error: object...rm()删除对象 rm(object)删除指定对象,rm(list = ls())可以删除内存的所有对象 gc()内存垃圾回收 使用rm(object)删除变量,要使用gc()做垃圾回收,否则内存是不会自动释放的...invisible(gc())不显示垃圾回收的结果 4.经常使用分析内存的函数 object.size()返回R对象的大小 memory.profile()分析cons单元的使用情况 5.学会使用并行计算和分布式计算接口

1.8K00
  • 「R」R的符号和环境

    > x <- 1 > y <- 2 > z <- 3 > v <- quote(c(x,y,z)) > eval(v) [1] 1 2 3 > v c(x, y, z) > > x <- 5 > eval...函数 描述 assign 在envir环境中将名称x赋给value对象 get 在envir环境获得与名称x关联的对象 exists 判断在环境envir是否定义了名称x objects 以向量的形式返回...没有参数返回的就是当前环境 new.env 返回一个新的环境对象 简单用一下其中的几个函数: > x <- 1 > y <- 2 > z <- 3 > objects() [1] "x" "y" "...函数的父环境就是创建该函数的环境。调用环境是使用函数的环境。如果函数是在运行环境创建的,那么父环境和调用环境是相同的。...on.exit所使用的表达式 sys.status 返回一个列表,其中包括调用sys.calls,sys.parents和sys.frames的结果 parent.frame 返回sys.frame(sys.parent

    1.1K10

    「R」do.call 的使用

    do.call这个函数是我在搜索问题时会看到别人经常使用的一个函数,心生好奇,这次来看看它的用法。 从文档来看,do.call可以通过名字构建和执行函数,并且将参数以列表的形式传入。...,不过这里是介绍quote的用法 do.call(paste, list("A", "B")) ## [1] "A B" 从哪里寻找对象的例子: A <- 2 f <- function(x) print...(x) f(A) ## [1] 2 # 使用当前环境函数与变量 do.call("f", list(A)) ## [1] 2 # 使用env环境函数与当前环境变量 do.call("f", list(A...= env) ## [1] 10 # 使用env环境函数与env环境变量 do.call("f", list(as.name("A")), envir = env) ## [1] 100 eval...首先在新环境创建的函数对象是打印输入的平方,A是10。 call函数用来创建和测试对象,不过看起来用法与quote()类似,将东西先存起来不执行,等后续调用。

    1K20

    R语言tryCatch使用方法:判断Warning和Error

    R判断warning和error状态的函数,我没有找到。一个玩Java的同事说,try.....catch多经典的方法,你怎么不用呢? ❝我知道R中有tryCatch这个函数,但是没有具体用过。...}, error = function(e){ # 这里出现Error状态,应该怎么做,可以用print打印出来,也可以执行其它命令 },finally = { # 这是运行正常,应该怎么做,可以用...可以看到,代码执行成功了,但是会给出Warning message 然后我们看一下Error的报警信息,假定R没有aaaaa的对象,你直接打印出来,会报错: # error aaaaa > # error...> aaaaa 错误: 找不到对象'aaaaa' 那我们用tryCatch走两步看看?...「看示例:」melt这个函数,运行melt(dd,y~.)会报错,同时,因为这个函数data.table用法有变化,因此,也会给出warning信息。

    86520

    R语言tryCatch使用方法:判断Warning和Error

    R判断warning和error状态的函数,我没有找到。一个玩Java的同事说,try.....catch多经典的方法,你怎么不用呢? 我知道R中有tryCatch这个函数,但是没有具体用过。...}, error = function(e){ # 这里出现Error状态,应该怎么做,可以用print打印出来,也可以执行其它命令 },finally = { # 这是运行正常,应该怎么做,可以用...可以看到,代码执行成功了,但是会给出Warning message 然后我们看一下Error的报警信息,假定R没有aaaaa的对象,你直接打印出来,会报错: # error aaaaa > # error...> aaaaa 错误: 找不到对象'aaaaa' 那我们用tryCatch走两步看看?...看示例: melt这个函数,运行melt(dd,y~.)会报错,同时,因为这个函数data.table用法有变化,因此,也会给出warning信息。

    6.7K72

    R tips: ggplot图层编写

    在实际使用,ggplot中使用的图层是以geom或者stat开头的函数创建的,但是如果查看一下这些图层函数的具体内容可以发现他们都是在封装一个layer函数。...ggplot_build函数的具体处理过程如下: layer: ggplot对象在绘制过程,首先是使用Layer的setup_layer函数处理layer相关的数据处理,这里一般不处理数据,只是一个hook...geom_boxplot的StatBoxplot对象即可,但是Geom对象需要重新定义,使用自己定义的GeomWhisker对象。...,绘制的图形对象是线段,主要的定义的是Geom对象的draw_group方法,返回值是使用grid::segmentsGrob函数生成的segmentsGrob绘图对象,绘制的线段的位置是由StatBoxplot...在进行绘制前一定要使用coord的transform函数处理一下变换而来的data。

    27920

    详解作用域链

    如果初始化变量没有使用var声明,该变量会被自动添加到全局环境。...当执行流进入一个函数函数的环境就会被推入一个环境栈。而在函数执行之后,栈将其环境弹出,将控制权返回给之前的执行环境。 当代码在一个环境执行时,会创建变量对象的一个作用域链。...但是,这里有一个意外情况,就是在 eval 的上下文中,变量是可以删除的。 有些debug工具也是可以删除的,因为它们使用eval()方法来执行代码的。...buildUrl()函数定义了一个变量qs。当在with 语句中引用变量href (实际引用的是location.href),可以在当前执行环境的变量对象中找到。...当引用变量qs,引用的则是在buildUrl()定义的那个变量,而该变量位于函数环境的变量对象

    55730

    reactjs开发自制编程语言编译器:实现变量绑定和函数调用

    下次使用到变量x,编译器会读取它绑定的值,然后用于相关代码的执行,例如下面代码: let y = x + 5; 编译器执行上面语句后,变量y就会跟数值30绑定起来,本节我们就先增加变量绑定的功能。...为了实现上面功能,我们需要做两件事,一是增加函数对应的符号对象,而是在解析函数eval增加相应功能。首先我们看看如何构建函数的符号对象。...FunctionCall,专门配置一个环境对象,这样函数的变量绑定能跟函数外的执行环境分离开来。...当在函数体内查找一个变量与数值的对应关系,如果在当前的绑定环境找不到,就通过outer指针到上一个绑定环境去找,例如在上面的示例代码例子里,函数执行时要访问变量k的值,这个变量在函数执行时的绑定环境里是找不到的...由此可见,我们的编译器在执行代码,遇到变量x后,它从绑定环境读取到变量x对应的数值是10.接下来我们看看如何执行函数调用。

    77630

    静态作用域和动态作用域

    其原因是在采用静态作用域规则的时候,对于函数的定义者来说,他可以通过阅读自己的代码很容易地知道他所使用到的变量当前绑定的具体实体是什么,而在使用采用动态作用域的语言,则需要考虑这个函数被调用的时候该变量所对应的具体实体...所以,对于函数的实现者来说他需要担心函数使用的位置会出现重名造成的问题,对于函数的调用者来说他也要担心这个问题,结果就是在 Emacs Lisp 这样的语言里,函数的实现者往往会使用一个非常长的名字来命名变量...对于变量,求值方式是很显然的,就是在环境找这个变量,如果找不到就返回错误信息: eval' (Variable name) env = evalVar name env evalVar :: String...当我们在当前作用域中找不到一个变量的绑定时,我们就会在捕获到的环境向外查找,直到找到或是没有更外层的作用域为止。...当我们在当前作用域中找不到一个名字,我们会先查找函数被调用的空间。 在 C++ 模拟动态作用域 上一节讲的是在解释器实现两种作用域的方式,那如果我们就是想在现有的语言里模拟这个特性呢?

    2.1K10

    R︱高效数据操作——data.table包(实战心得、dplyr对比、key灵活用法、数据合并)

    data.table,还有一个比较特立独行的函数使用:=引用来添加或更新一列(参考:R语言data.table速查手册) DT[, c("V1","V2") := list(round(exp(V1...%>%的功能是用于实现将一个函数的输出传递给下一个函数的第一个参数。注意这里的,传递给下一个函数的第一个参数,然后就不用写第一个参数了。在dplyr分组求和的过程,还是挺有用的。...nomatch参数用于控制,当在i没有到匹配数据的返回结果,默认为NA,也能设定为0。...(x)] 还有 data$x 如果有很多名字很长的指标,data.table如果按列进行遍历呢? data[,1]是不行的,选中列的方式是用列名。...2016-11-28补充: 留言区大神给了一个比较好的选中列的方式,其中主要就是对with的使用data.table取列,可以用data[,1,with=FALSE]取data的第一列

    8.6K43

    Seurat4.0系列教程19:多线程并行策略

    如何在Seurat4.0使用并行 要访问 Seurat 的并行函数版本,您需要加载future包并设置plan 。plan将指定如何运行该函数。默认行为是以非并行方式(按顺序)进行。...请注意,虽然我们预计使用并行策略将减少上述函数的运行时间,但这种减少的幅度将取决于许多因素(例如数据集的大小、线程数、系统的规格、future框架等)。...遗憾的是,在任何平行模式下运行这些函数,将会失去进度栏。这是由于future框架和 R 的一些技术限制造成的。如果要监控函数进度,则需要放弃并行化,选择使用plan("sequential")。...Error in getGlobalsAndPackages(expr, envir = envir, globals = TRUE) : The total size of the X globals...The X largest globals are ... 对于某些函数,每个线程需要访问某些全局变量。如果这些大于默认限制,将看到此错误。

    2.1K42

    Python 错误类型

    Copy 在 Python 3.x ,print 是一个内置函数,需要括号。上面的语句违反了这种用法,因此会显示语法错误。 但是很多时候,程序在运行后会导致错误,即使它没有任何语法错误。...索引错误 当序列的索引超出范围引发。 键错误 在字典找不到引发。 键盘中断 当用户点击中断键(Ctrl+c 或 delete)引发。 存储器错误 当操作耗尽内存引发。...名称错误 当在局部或全局范围内找不到变量引发。 notimplemontederror 由抽象方法引发。 操作系统错误 当系统操作导致系统相关错误时引发。...停止迭代 由 next()函数引发,表示迭代器不再返回任何项。 句法误差 遇到语法错误时由解析器引发。 内建 Error 当缩进不正确引发。...TabError 当缩进由不一致的制表符和空格组成引发。 系统误差 解释器检测到内部错误时引发。 系统退出 由 sys.exit()函数引发。 类型错误 当函数或操作应用于不正确类型的对象引发。

    21720

    高级前端手写面试题汇总

    call 函数的实现步骤:判断调用对象是否为函数,即使我们是定义在函数的原型上的,但是可能出现使用 call 等方式调用的情况。...数组去重实现的基本原理如下:① 初始化一个空数组② 将需要去重处理的数组的第1项在初始化数组查找,如果找不到(空数组中肯定找不到),就将该项添加到初始化数组③ 将需要去重处理的数组的第2项在初始化数组查找...,如果找不到,就将该项继续添加到初始化数组④ ……⑤ 将需要去重处理的数组的第n项在初始化数组查找,如果找不到,就将该项继续添加到初始化数组⑥ 将这个初始化数组返回var newArr = arr.reduce...+ jsonStr))();eval 与 Function都有着动态编译js代码的作用,但是在实际的编程并不推荐使用手写 Promise.thenthen 方法返回一个新的 promise 实例,为了在...promise 状态发生变化时(resolve / reject 被调用时)再执行 then 里的函数,我们使用一个 callbacks 数组先把传给then的函数暂存起来,等状态改变再调用。

    83010

    「r」dplyr 里的 join 与 base 里的 merge 存在差异

    今天在使用连接操作发现:虽然都是合并操作函数,dplyr 包里的 *_join() 和基础包里面的 merge() 存在差异,不同的数据结构,结果也会存在偏差。...相同的数据,不同的操作函数存在差异 在进行连接操作,我们会发现 dplyr 的结果会报错!...所以使用 dplyr 提供的连接函数报错是正常的,但有意思的是,基础包提供的 merge() 函数可以完成连接操作,真是优秀(感兴趣的朋友可以看下测试下 merge 函数源代码)!...本质上是 data.table 体格的泛型函数不支持类似基础包的操作。 如何编写代码支持对上述数据集的连接操作?...2 S1 S2 S2 S1 S2 更新 在后面的一些使用过程中发现基础包的 merge() 函数在进行连接操作时会输出有问题的结果,所以建议使用的小伙伴仔细检查结果。

    1.6K30

    R语言数据分析利器data.table包 —— 数据框结构处理精讲

    将一个R对象转化为data.table,R可以矢量,列表,data.frame等,keep.rownames决定是否保留行名或者列表名,默认FALSE,如果TRUE,将行名存在"rn"行,keep.rownames...,比as.data.table快,因为以传地址的方式直接修改原对象,没有拷贝 copy(x) 深度拷贝一个data.tablexdata.table对象。...DT的属性,setattr(x,name,value) xdata.table,list或者data.frame,而name属性名,value属性值,setnames(x,old,new),设置x..., by=x][order(x)] #和上面一样,采取data.table的链接符合表达式 DT[v>1, sum(y), by=v] #对v列进行分组后,取各组v>1的行出来,各组分别对定义的行的...with 默认是TRUE,列名能够当作变量使用,即x相当于DT$"x",当是FALSE,列名仅仅作为字符串,可以用传统data.frame方法并且返回data.tablex[, cols, with

    5.9K20

    函数函数编程

    函数 使用def语句可定义函数: def add(x, y): return x + y 函数体就是在调用函数所执行的一系列语句。调用函数的方法是在函数名称后面加上参数。...仍然是42.在函数对变量进行赋值,这些变量始终绑定到该函数的局部命名空间中,因此函数的变量a引用的是一个包含值13的全新对象,而不是外部的变量。...函数定义就确定了变量是局部的还是全局的,而且在函数不能突然改变它们的作用域。 4. 函数对象与闭包 函数在Python是第一类对象。...因此如果调用square()函数,看到的将是包装器write()方法的输出。 使用装饰器,它们必须出现函数或类定义之前的单独行上。...eval()和exec()函数可以接受一个或两个可选的映射对象,分别用作代码执行的全局和局部命名空间,例如: globals = {'x': 7, 'y': 10, 'birds': ['Parrot'

    1.5K20
    领券