【发布时间】:2016-01-03 16:32:29
【问题描述】:
我正在尝试对名为cars 的表进行子集化,如下所示。我不想在我的子表中使用Country 列,所以我使用[,-1] 删除第一列,而是将我的新变量cars.use 分配给-1。这里发生了什么?
> library(data.table)
> cars <- fread('cars.csv', header = TRUE)
> typeof(cars)
[1] "list"
> head(cars)
Country Car MPG Weight Drive_Ratio Horsepower Displacement Cylinders
1: U.S. Buick Estate Wagon 16.9 4.360 2.73 155 350 8
2: U.S. Ford Country Squire Wagon 15.5 4.054 2.26 142 351 8
3: U.S. Chevy Malibu Wagon 19.2 3.605 2.56 125 267 8
4: U.S. Chrysler LeBaron Wagon 18.5 3.940 2.45 150 360 8
5: U.S. Chevette 30.0 2.155 3.70 68 98 4
6: Japan Toyota Corona 27.5 2.560 3.05 95 134 4
> cars.use <- cars[,-1]
> cars.use
[1] -1
【问题讨论】:
-
一旦你学会了使用 data.table 会更快更好。由于您已经在使用 fread,我猜您知道这比使用 read.table 快得多。因此,要删除 data.table 语言中的列,您可以使用以下命令:
cars[ , Country := NULL]。 (另请参阅下面的@akrun 评论) -
仅供参考,您大部分时间都希望使用
class(cars)而不是typeof(cars)。
标签: r data.table subset