2016-08-17 7 views
6

Я думаю, что мне не хватает фундаментальной концепции о кадрах данных R.Что такое первый столбец в наборе данных m? Rar?

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 

Названия автомобилей здесь. Это столбец? Я так не думаю, потому что я не могу получить к ним доступ через mtcars[,1]. И для этого нет имени/заголовка столбца.

Как создать такой кадр данных? Как я могу использовать этот специальный столбец, например. например, для описания данных на графике?

+5

Это имена строк. 'rownames (mtcars)' – zx8754

ответ

7

Они имена строк, чтобы получить доступ к их использовать:

rownames(mtcars) 

Для имен столбцов используйте COLNAMES, чтобы увидеть обе строки и столбца имен, мы можем использовать:

dimnames(mtcars) 

Для изменения, для пример первая строка:

rownames(mtcars)[1] <- "myNewName" 

Когда фрейм данных создается с data.frame, имена строк назначаются с 1: пп umbers.

mydata <- data.frame(x = 1:5) 

Тогда мы можем изменить их:

rownames(mydata) <- paste0("MyName", 1:5) 

Или мы можем добавить rownames при создании data.frame:

mydata <- data.frame(x = 1:5, row.names = paste0("MyName", 1:5)) 

Примечание: rownames не очень надежны, например, см. this post. (это может быть субъективное мнение, и я избегаю их переназначением имен ростов на колонны)

data.table и dplyr packages предпочитают не иметь их. Вы всегда можете переназначить имена ростов в столбцы как:

mydata$myNames <- rownames(mydata) 
+1

** имена строк ** ?! Это из моей вселенной Excel! Большой! ;) – buhtz

+0

btw: Некоторые библиотеки экспорта (для файлов csv или xlsx) используют имена розеток в качестве первого столбца. Могу ли я удалить имена розеток? – buhtz

+0

Когда я делаю 'mtcars $ mpg', имена розеток отсутствуют. Можно ли это исправить? – buhtz