Избавление от «скрытого столбца» в фреймах данных R - PullRequest
0 голосов
/ 19 августа 2010

У меня есть фрейм данных, который я вывожу в MS Word. Допустим, я пытаюсь вывести фрейм данных mtcars, затем, используя пакет R2wd, получаю:

#install.packages("R2wd")
require(R2wd)
wdGet()
wdTable(mtcars)

'> Ncol (mtcars)
11

однако подсчет показывает, что на самом деле 12 столбцов. R не включает модель автомобиля.

У меня есть фрейм данных, который выводит числовую последовательность фрейма данных, и мне действительно нужно это исключить. В отчете я выводлю на него бесполезную информацию. Поэтому мне нужно подавить столбец модели mtcars.

Кроме того, как получается, что имена машин могут быть "скрытым" столбцом?

Ответы [ 2 ]

4 голосов
/ 19 августа 2010

Все data.frame объекты имеют rowname атрибуты.Вы путаете rowname для фактического столбца.

> str(mtcars)
'data.frame':   32 obs. of  11 variables:
 $ mpg : num  21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
 $ cyl : num  6 6 4 6 8 6 8 4 4 6 ...
 $ disp: num  160 160 108 258 360 ...
 $ hp  : num  110 110 93 110 175 105 245 62 95 123 ...
 $ drat: num  3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
 $ wt  : num  2.62 2.88 2.32 3.21 3.44 ...
 $ qsec: num  16.5 17 18.6 19.4 17 ...
 $ vs  : num  0 0 1 1 0 1 0 1 1 1 ...
 $ am  : num  1 1 1 0 0 0 0 0 0 0 ...
 $ gear: num  4 4 4 3 3 3 3 4 4 4 ...
 $ carb: num  4 4 1 1 2 1 4 2 2 4 ...
> rownames(mtcars)
 [1] "Mazda RX4"           "Mazda RX4 Wag"       "Datsun 710"         
 [4] "Hornet 4 Drive"      "Hornet Sportabout"   "Valiant"            
 [7] "Duster 360"          "Merc 240D"           "Merc 230"           
[10] "Merc 280"            "Merc 280C"           "Merc 450SE"         
[13] "Merc 450SL"          "Merc 450SLC"         "Cadillac Fleetwood" 
[16] "Lincoln Continental" "Chrysler Imperial"   "Fiat 128"           
[19] "Honda Civic"         "Toyota Corolla"      "Toyota Corona"      
[22] "Dodge Challenger"    "AMC Javelin"         "Camaro Z28"         
[25] "Pontiac Firebird"    "Fiat X1-9"           "Porsche 914-2"      
[28] "Lotus Europa"        "Ford Pantera L"      "Ferrari Dino"       
[31] "Maserati Bora"       "Volvo 142E"         
1 голос
/ 19 августа 2010

В mtcars data.frame они установили rownames для data.frame = название автомобиля. Вы можете проверить это, выполнив что-то вроде этого:

data(mtcars)
rownames(mtcars)

Вы также можете установить rownames для объекта. Со страницы справки:

m2 <- cbind(1,1:4)
rownames(m2) <- rownames(m2, do.NULL = FALSE, prefix = "Obs.")

Эквивалентная функциональность существует с colnames.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...