Когда я создаю столбец строк, используя data.table, используя строки параметров data.frameAsFactor = F, результирующая таблица данных правильно использует параметры strAsAsFactor = F, но затем добавляет дополнительный столбец «strAsAsFactor». Достаточно легко избавиться от дополнительной колонки. Но есть ли способ сообщить data.frame не добавлять столбцы на основе параметра data.frame? I.e., это ошибка или особенность? См ToyExample ниже:data.table с параметром data.frame создает дополнительный столбец
library(data.table)
factorTest <- sample(c('O','A', 'B','AB'), 50, replace = T)
summary(factorTest)
Length Class Mode
50 character character
summary(as.factor(factorTest))
A AB B O
10 18 7 15
test1 <- data.frame(dabo = factor(factorTest,
levels = c('O','A','B','AB')), dabostr = factorTest,
stringsAsFactors = F)
test2 <- data.table(dabo = factor(factorTest,
levels = c('O','A','B','AB')), dabostr = factorTest,
stringsAsFactors = F)
summary(test1)
dabo dabostr
O :15 Length:50
A :10 Class :character
B : 7 Mode :character
AB:18
summary(test2)
dabo dabostr stringsAsFactors
O :15 Length:50 Mode :logical
A :10 Class :character FALSE:50
B : 7 Mode :character NA's :0
AB:18
'data.table' просто не имеют' stringsAsFactors' argument- см '? Data.table'. Таким образом, вы просто создаете новый столбец. Причина, по которой строки не преобразуются в такие факторы, как 'data.frame', состоит в том, что это поведение по умолчанию' data.table'. –
Я заполнил запрос функции для обработки этого предупреждения или предупреждения: [data.table # 1446] (https://github.com/Rdatatable/data.table/issues/1446) – jangorecki