如何从R中的数据框中删除列

时间:2014-11-22 00:01:38

标签: r

我正在尝试从data.frame中删除列。 以下表达式

a1$"STR_COL_4_" <- NULL 

但是

xx <- "STR_COL_4_"   
a1$xx <- NULL    

不起作用......问题是什么???

1 个答案:

答案 0 :(得分:1)

正如Richard Scriven,user20650和agenis所指出的那样,当你使用$来引用数据框中的列时,它只会在数据框中查找该列。在第二个示例中,R查找名为xx的列并失败,即使已存在名为 xx的变量。使用[[ ]]让R评估表达式。

作为使用内置汽车数据集的示例:

> data(mtcars)
> head(mtcars)
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4   
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4   
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1   
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1   
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2   
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1   
> var <- "wt"
> mtcars$var
NULL
> mtcars[[var]]
 [1] 2.620 2.875 2.320 3.215 3.440 3.460 3.570 3.190 3.150 3.440 3.440 4.070
[13] 3.730 3.780 5.250 5.424 5.345 2.200 1.615 1.835 2.465 3.520 3.435 3.840
[25] 3.845 1.935 2.140 1.513 3.170 2.770 3.570 2.780