R语言 使用索引位置提取data.table列作为矢量

R语言 使用索引位置提取data.table列作为矢量

可以使用列表子集,即[[,操作符来提取指定索引处的列。与单括号相比,双括号操作符更快,可以用来提取指定索引处的元素或因子级。如果指定的索引超过了行数,那么会返回一个异常,说明索引超出了界限。这里不能使用单括号[, 操作符,因为它返回数据表的一个子集,也就是一个data.table元素作为输出,而不是一个原子矢量。执行这个操作需要恒定的时间。

例子

library("data.table")
  
# declaring data table
data_frame <- data.table(col1 = c(2,4,6), 
                         col2 = c(4,6,8), 
                         col3 = c(8,10,12), 
                         col4 = c(20,16,14))
  
print ("Original DataTable")
print (data_frame)
  
# extracting column 2
print ("Column 2 as a vector")
  
vec <-  data_frame[[2]]
print (vec)

输出

[1] “Original DataTable”

col1 col2 col3 col4

1:    2    4    8   20

2:    4    6   10   16

3:    6    8   12   14

[1] “Column 2 as a vector”

[1] 4 6 8

data.table的每一列也可以通过在整个data.table上循环来提取一个单独的向量。ncol()方法可以用来返回data.table中的总列数。进行这一操作所需的总时间相当于O(n),其中n是列。

例子

# getting required libraries
library("data.table")
  
# declaring data table
data_table <- data.table(col1 = c(2,4,6), 
                         col2 = FALSE, 
                         col3 = LETTERS[1:3])
  
print ("Original DataTable")
print (data_table)
  
# getting number of columns
cols <- ncol(data_table)
  
# looping through columns
for (i in 1:cols){
    
    # getting ith col
    cat(i, "th col \n")
    print(data_table[[i]])
}

输出

[1] “Original DataTable”

col1  col2 col3

1:    2 FALSE    A

2:    4 FALSE    B

3:    6 FALSE    C

1 th col

[1] 2 4 6

2 th col

[1] FALSE FALSE FALSE

3 th col

[1] “A” “B” “C”

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程