Как импортировать символьный столбец как фактор? - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть следующий набор данных в файле .txt:

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,Action
0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,Up
2,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,Left
4,0,0,2,0,0,0,0,0,2,0,0,0,0,0,0,Left
4,2,0,2,0,2,0,0,0,0,0,0,0,0,0,0,Up
4,4,0,0,2,0,0,0,0,0,0,0,0,0,0,2,Up
8,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,Left

Когда я загружаю свой набор данных в RStudio, я ожидаю, что он преобразует последний столбец Action в Factor тип.Но он считает его Character.

. Я могу заставить его считать его фактором, но он просит меня:

Пожалуйста, вставьте список факторов, разделенный запятыми (Вы можете найти его на изображении ниже).Но я не понимаю этого.Должен ли я вставить Levels Фактора или Список значений, который будет заменен на весь столбец Действие?

Как мне импортировать мой набор данных с Factor в последнем столбце?

enter image description here

если запустить str(dt), это дает мне:

Classes ‘tbl_df’, ‘tbl’ and 'data.frame':   2979 obs. of  17 variables:
 $ 1     : int  0 2 4 4 4 8 8 8 8 8 ...
 $ 2     : int  0 0 0 2 4 0 0 0 2 4 ...
 $ 3     : int  0 0 0 0 0 0 0 0 0 2 ...
 $ 4     : int  2 0 2 2 0 0 0 2 2 0 ...
 $ 5     : int  0 2 0 0 2 2 4 4 4 4 ...
 $ 6     : int  0 0 0 2 0 0 0 0 0 2 ...
 $ 7     : int  0 0 0 0 0 0 0 0 2 0 ...
 $ 8     : int  2 0 0 0 0 0 0 0 0 0 ...
 $ 9     : int  0 0 0 0 0 2 2 2 2 2 ...
 $ 10    : int  0 0 2 0 0 0 0 2 0 0 ...
 $ 11    : int  0 0 0 0 0 0 0 0 0 0 ...
 $ 12    : int  0 2 0 0 0 0 0 0 0 0 ...
 $ 13    : int  0 0 0 0 0 2 0 0 0 0 ...
 $ 14    : int  0 0 0 0 0 0 0 0 0 0 ...
 $ 15    : int  0 0 0 0 0 0 0 0 0 0 ...
 $ 16    : int  0 0 0 0 2 0 2 0 0 0 ...
 $ Action: chr  "Up" "Left" "Left" "Up" ...
 - attr(*, "spec")=List of 2
  ..$ cols   :List of 17
  .. ..$ 1     : list()
  .. .. ..- attr(*, "class")= chr  "collector_integer" "collector"
  .. ..$ 2     : list()
  .. .. ..- attr(*, "class")= chr  "collector_integer" "collector"
  .. ..$ 3     : list()
  .. .. ..- attr(*, "class")= chr  "collector_integer" "collector"
  .. ..$ 4     : list()
  .. .. ..- attr(*, "class")= chr  "collector_integer" "collector"
  .. ..$ 5     : list()
  .. .. ..- attr(*, "class")= chr  "collector_integer" "collector"
  .. ..$ 6     : list()
  .. .. ..- attr(*, "class")= chr  "collector_integer" "collector"
  .. ..$ 7     : list()
  .. .. ..- attr(*, "class")= chr  "collector_integer" "collector"
  .. ..$ 8     : list()
  .. .. ..- attr(*, "class")= chr  "collector_integer" "collector"
  .. ..$ 9     : list()
  .. .. ..- attr(*, "class")= chr  "collector_integer" "collector"
  .. ..$ 10    : list()
  .. .. ..- attr(*, "class")= chr  "collector_integer" "collector"
  .. ..$ 11    : list()
  .. .. ..- attr(*, "class")= chr  "collector_integer" "collector"
  .. ..$ 12    : list()
  .. .. ..- attr(*, "class")= chr  "collector_integer" "collector"
  .. ..$ 13    : list()
  .. .. ..- attr(*, "class")= chr  "collector_integer" "collector"
  .. ..$ 14    : list()
  .. .. ..- attr(*, "class")= chr  "collector_integer" "collector"
  .. ..$ 15    : list()
  .. .. ..- attr(*, "class")= chr  "collector_integer" "collector"
  .. ..$ 16    : list()
  .. .. ..- attr(*, "class")= chr  "collector_integer" "collector"
  .. ..$ Action: list()
  .. .. ..- attr(*, "class")= chr  "collector_character" "collector"
  ..$ default: list()
  .. ..- attr(*, "class")= chr  "collector_guess" "collector"
  ..- attr(*, "class")= chr "col_spec"

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

С базой R, это также должно работать: read.table("FileName.txt", sep = ",", header = TRUE, stringsAsFactors = TRUE)

0 голосов
/ 27 сентября 2018

Мы указываем col_types определенного столбца или всех столбцов

library(readr)
read_csv(file, col_type = cols(Action = col_factor(levels = c("Up", "Left"))))
# A tibble: 6 x 17
#    `1`   `2`   `3`   `4`   `5`   `6`   `7`   `8`   `9`  `10`  `11`  `12`  `13`  `14`  `15`  `16` Action
#  <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <int> <fct> 
#1     0     0     0     2     0     0     0     2     0     0     0     0     0     0     0     0 Up    
#2     2     0     0     0     2     0     0     0     0     0     0     2     0     0     0     0 Left  
#3     4     0     0     2     0     0     0     0     0     2     0     0     0     0     0     0 Left  
#4     4     2     0     2     0     2     0     0     0     0     0     0     0     0     0     0 Up    
#5     4     4     0     0     2     0     0     0     0     0     0     0     0     0     0     2 Up    
#6     8     0     0     0     2     0     0     0     2     0     0     0     2     0     0     0 Left  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...