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

1
irfan 7 Май 2016 в 13:07

2 ответа

Лучший ответ

Если ваши 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))

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

1
Juanjo 7 Май 2016 в 11:36

Имена строк в 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 Или вы можете создать столбец в df или втором data.frame, который содержит информацию

1
Richard Telford 7 Май 2016 в 10:26