如何从数据中提取列.以位置作为向量的表?以下是我try 过的一些代码片段:

DT<-data.table(x=c(1,2),y=c(3,4),z=c(5,6))
DT
#   x y z
#1: 1 3 5
#2: 2 4 6

我想用列位置得到这个输出

DT$y 
#[1] 3 4
is.vector(DT$y)
#[1] TRUE

使用列位置获取此输出的其他方法

DT[,y] 
#[1] 3 4
is.vector(DT[,y])
#[1] TRUE

这并没有给出向量

DT[,2,with=FALSE]
#   y
#1: 3
#2: 4
is.vector(DT[,2,with=FALSE])
#[1] FALSE

这两个都不行:

DT$noquote(names(DT)[2]) # Doesn't work
#Error: attempt to apply non-function

DT[,noquote(names(DT)[2])] # Doesn't work
#[1] y

这并没有给出一个向量:

DT[,noquote(names(DT)[2]),with=FALSE] # Not a vector
#   y
#1: 3
#2: 4
is.vector(DT[,noquote(names(DT)[2]),with=FALSE])
#[1] FALSE

推荐答案

一份数据.表继承自类data.frame.因此,可以对向量list进行内部处理.

is.list(DT)
#[1] TRUE

幸运的是,列表子集(即[[)非常快,与[相比,包数据.表没有为其定义方法.因此,您可以简单地使用[[按索引提取:

DT[[2]]
#[1] 3 4

R相关问答推荐

rvest函数read_html_live()不允许html_elements()正确读取

将虚线添加到每个站点的传奇中平均

有没有方法将琴弦完全捕捉到R中的多边形?

在位置周围设定一个半径并识别该半径内的其他位置

R:连接值,而不是变量?

矩阵%*%矩阵中的错误:需要数字/复杂矩阵/向量参数

通过使用str_detect对具有相似字符串的组进行分组

有没有一个R函数允许你从一个数字变量中提取一个数字,而不考虑它的位置(不仅仅是第一个或最后一个数字?

如何删除gggvenn与gggplot绘制的空白?

根据选中三个复选框中的一个或两个来调整绘图

我不能在docker中加载sf

如何在modelsummary中重命名统计数据?

如何使用STAT_SUMMARY向ggplot2中的密度图添加垂直线

使用R中的正则表达式将一列分割为多列

R -在先前group_by级别汇总时获取最大大小子组的计数

悬崖三角洲超大型群数计算导致整数溢出

我如何go 掉盒子图底部的数字?

如何将一些单元格的内容随机 Select 到一个数据框中?

如何删除R中除数字元素以外的所有元素

如何在R中使用混合GAM模型只对固定的影响因素进行适当的预测?