r - R data.table中双点`..`的错误
问题描述
今天早些时候,我正在寻找一种方法来获取 R 中 data.table 中作为类字符的所有列的名称的向量。我找到了这个解决方案:
> chrs <- sapply(BTplan, is.character)
> chrs
plan plannext noinsnext claimsnext regionnext noins1
TRUE TRUE FALSE FALSE TRUE FALSE
noins2 noins3 region1 region2 region3 claims1
FALSE FALSE TRUE TRUE TRUE FALSE
claims2 claims3 quotationYear historicalYear1 historicalYear2 historicalYear3
FALSE FALSE FALSE FALSE FALSE FALSE
policy planNr combined.PriceAnnually experienceBased.PriceAnnually referenceBased.PriceAnnually errorMessage
TRUE TRUE FALSE FALSE FALSE TRUE
size
FALSE
> chrCols <- names(BTplan[, ..chrs])
它今天早些时候工作,但现在,由于某种原因,我收到了一个错误:
Error in `[.data.frame`(BTplan, , ..chrs) : object '..chrs' not found
问题是什么?为什么..
不再工作?
解决方案
根据错误,“BTplan”可能仍然是data.frame
. 转换为data.table
withsetDT
或as.data.table
应该将其修复为..
and 语法是特定于data.table
对象的
library(data.table)
names(as.data.table(BTplan)[, ..chrs])
使用可重现的示例
chrs <- sapply(iris, is.numeric)
names(as.data.table(iris)[, ..chrs])
#[1] "Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width"
推荐阅读
- django - Django Rest Framework 中嵌套 URL 的相关资源
- css - 保持 100% 的网页浏览高度
- asp.net-core - ASP.NET Core 将资源筛选器应用于文件夹
- javascript - 根据 BehaviorSubject 的值订阅 Observable
- winforms - 无法使用新数据更新文本框
- ios - SwiftUI 和 MVVM 设计模式
- oracle - 如何将子查询中的计数 ID 数分配给 plsql 声明的变量“v_count”
- php - 如何在给定模式上拆分字符串,同时将模式包含到拆分字符串的第二部分
- javascript - javaScript number.toString()
- angular - TS中复杂函数参数的解构