Изменение атрибутов списка имен - PullRequest
2 голосов
/ 06 июля 2011

Здравствуйте. Я анализирую некоторые данные и пытаюсь использовать пакет, содержащий объект, который должен быть отформатирован таким образом. Я никогда не видел такой формат, и я не уверен, как его сгенерировать. Когда я вызываю объект в R, это странный объект:

> a
     A      B          C            D         E          F 
0.00000000 1.34529412 0.31571429 1.26327103 0.32615385 1.12585586 

Вот некоторые атрибуты этого объекта:

> str(a)
 Named num [1:6] 0 1.345 0.316 1.263 0.326 ...
 - attr(*, "names")= chr [1:6] "" "A" "B" "C" ...

> class(a)
[1] "numeric"

Я могу записать «a» в формат .csv с помощью стандартной команды write.csv, и он хорошо форматирует ее с помощью двух столбцов, один столбец с символами, а другой с цифрами. Когда я пытаюсь прочитать его обратно в R, используя read.csv, он возвращает его правильно как фрейм данных с двумя столбцами. Однако функция, которую я пытаюсь использовать, не любит формат фрейма данных и предпочитает любой формат «а».

Таким образом, можно взять пример набора данных, например:

> L <- c("A","B","C","D","E","F")
> R <- c(0.00000000,1.34529412,0.31571429,1.26327103,0.32615385,1.12585586 )
> T <- list(L=L,R=R)
> Example <- as.data.frame(T)
> Example
  L     R
1 A 0.00000000
2 B 1.34529412
3 C 0.31571429
4 D 1.26327103
5 E 0.32615385
6 F 1.12585586 

И превратить это обратно в это?

     A      B          C            D         E          F 
0.00000000 1.34529412 0.31571429 1.26327103 0.32615385 1.12585586 

С этими атрибутами?

  > str(a)
     Named num [1:6] 0 1.345 0.316 1.263 0.326 ...
     - attr(*, "names")= chr [1:6] "" "A" "B" "C" ...

    > class(a)
    [1] "numeric"

Спасибо за помощь!

Ответы [ 3 ]

4 голосов
/ 06 июля 2011

Я думаю, это то, что вы ищете:

newExample <- Example$R
names(newExample) <- Example$L
3 голосов
/ 06 июля 2011

Вместо записи на диск с помощью write.table () или write.csv (), вы должны научиться использовать save ().Затем вы можете быть уверены, что когда вы загрузите () объект обратно, вы получите правильно построенную копию.Если вам нужно посмотреть на объект в ASCII-читаемом формате, вы можете использовать dump ().

0 голосов
/ 04 ноября 2013
R <- t(Example$R)
L <- t(Example$L)
names(R) <- L
str(R)

число [1, 1: 6] 0 1,345 0,316 1,263 0,326 ... - attr (*, "names") = chr [1: 6] "A" "B" "C" "D" ...

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