📜  使用 R 中的索引位置将 data.table 列提取为向量

📅  最后修改于: 2022-05-13 01:54:28.803000             🧑  作者: Mango

使用 R 中的索引位置将 data.table 列提取为向量

可以使用列表子设置提取指定索引处的列,即 [[, 运算符。与单括号相比,双括号运算符速度更快,可用于提取指定索引处的元素或因子级别。如果指定的索引多于行数,则返回说明索引越界的异常。这里不能使用单括号 [,运算符,因为它返回数据表的一个子集,即 data.table 元素作为输出,而不是原子向量。执行此操作需要恒定的时间。

例子:

R
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)


R
# 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]])
}


输出

通过循环遍历整个 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]])
}

输出