2016-05-07 5 views
1

У меня есть data.frame с размерности [6587 37] и rownames должны повторяться через каждые 18 строк. Как я могу это сделать в Rstudio.R, Репликация rownames в data.frame

+4

data.frame rownames должны быть уникальными. – jimmyb

+0

@jimmyb, я должен дать уникальные имена ростов до 18 строк и продолжить до 6587 строк. – irfan

ответ

1

Если 18 имен столбцов:

mynames <- c("a", "b", "c", "d", "e", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s") 

вы можете получить то, что вы хотите с:

paste0(rep(mynames,length.out=6587),rep(1:366,each=18,length.out=6587)) 

Или вы можете изменить имена, вставляющие разные вещи.

+0

, который работает, большое вам спасибо. @Juanjo – irfan

+0

Пожалуйста, подтвердите меня и выберите ответ как хороший. – Juanjo

+0

@ Juanjo! как мы можем извлечь целевые данные сетки из основной массы набора данных? (например, я должен вытащить определенные долготы и широты суточных данных из набора данных за весь период в 40 лет. – irfan

1

Имена строк в data.frames должны быть уникальными.

> df <- data.frame(x = 1:2) 
> rownames(df) <- c("a", "a") 
Error in `row.names<-.data.frame`(`*tmp*`, value = value) : 
    duplicate 'row.names' are not allowed 
In addition: Warning message: 
non-unique value when setting 'row.names': ‘a’ 

Вы можете использовать make.names сделать имена уникальными, но по-прежнему несут некоторую повторяющуюся информацию.

> make.names(c("a","a"), unique = TRUE) 
[1] "a" "a.1" 

Они могут быть идентифицированы с помощью от grep Или вы могли бы сделать столбец в ДФ или второй data.frame, который содержит информацию

+0

Да, это была ошибка, и теперь ее решили. – irfan

Смежные вопросы