LINUX.ORG.RU

[R] доступ к колонке

 


0

1

Что значит «Levels: 1,0000 3,0000 5,0000» при получении значения колонки и др. действиях и как от них избавиться?

tab = read.table("table.csv", sep=";")

> tab
       V1      V2 
1  1,0000  2,0000 
2  5,0000  4,0000
3  3,0000  6,0000 

> tab[1, ]
       V1      V2 
1  1,0000  2,0000 

> tab[ ,1]
[1] 1,0000  5,0000 3,0000 
Levels: 1,0000 3,0000 5,0000

> tab[1,1]
[1] 1,0000
Levels: 1,0000 3,0000 5,0000

> x=tab[1,1]
> x
[1] 1,0000
Levels: 1,0000 3,0000 5,0000


Последнее исправление: ipc (всего исправлений: 1)

Ответ на: комментарий от ugoday

Перезапустил R, повторив ввод, и «Levels: 1,0000 3,0000 5,0000» исчезли сами.

ipc
() автор топика

Это значит, что данные в колонке распознаны как тип factor. Избавиться можно разными способами, например подкрутив параметры вызова read.csv или сменив тип. В файле кстати числа корректно представлены? А то м.б. есть расхождение между представлением чисел в R и с выбранной формой записи в файле (смущает "," в числах).

anonymous
()
Ответ на: комментарий от anonymous

>Перезапустил R, повторив ввод, и «Levels: 1,0000 3,0000 5,0000» исчезли сами.

Это значит, что данные в колонке распознаны как тип factor.


Теперь понятно, почему пропали.

tab = read.table(«table.csv», sep=";", dec=",")

у меня в файле числа в виде 1,9 вместо 1.9.

ipc
() автор топика
Ответ на: комментарий от ipc

есть готовое сокращение, вот его умолчания

read.csv2(file, header = TRUE, sep = ";", quote=«\»", dec=",", fill = TRUE, comment.char="", ...)

psv1967 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.