Использование меток значения в R с пакетом sjlabelled - PullRequest
0 голосов
/ 12 октября 2018

Недавно я перешел с STATA на R. В STATA у вас есть нечто, называемое меткой значения.Например, использование команды encode позволяет превратить строковую переменную в числовую, с меткой строки, прикрепленной к каждому числу.Поскольку строковые переменные содержат имена (которые повторяются большую часть времени), использование меток значений позволяет сэкономить много места при работе с большим набором данных.К сожалению, мне не удалось найти аналогичную команду в R. Единственный найденный мной пакет, который может прикрепить метки к моему вектору значений, это sjlabelled.Это делает вложение, но когда я пытаюсь объединить вложенный числовой вектор с другим фреймом данных, метки, кажется, «падают».

Например: скажем, мы берем абзац из Википедии только для того, чтобы получитьстроковая переменная.

paragraph <- "Melanija Knavs was born in Novo Mesto, and grew up in Sevnica, in the Yugoslav republic of Slovenia. She worked as a fashion model through agencies in Milan and Paris, later moving to New York City in 1996. Her modeling career was associated with Irene Marie Models and Trump Model Management"
install.packages("sjlabelled")
library(sjlabelled)
sentences <- strsplit(paragraph, " ")
sentences <- unlist(sentences, use.names = FALSE)
          # Now we have a vector to string values.
sentrnces_df <- as.data.frame(sentences)
sentences       <- unique(sentrnces_df$sentences)
group_sentences <- c(1:length(sentences))
sentences       <- as.data.frame(sentences)
group_sentences <- as.data.frame(group_sentences)
z <- cbind(sentences,group_sentences)
z$group_sentences <- set_labels(z$group_sentences, labels = (z$sentences))
sentrnces_df <- merge(sentrnces_df, z, by = c('sentences'))
get_labels(z$group_sentences)       # the labels I was attaching using set labels
get_labels(sentrnces_df$group_sentences) # the output is just “NULL”
The labels I was attaching using set labels 

Спасибо!PS Извините за не элегантный код, как я уже говорил, я довольно новичок в R.

1 Ответ

0 голосов
/ 12 октября 2018

source: https://simplystatistics.org/2015/07/24/stringsasfactors-an-unauthorized-biography/

... Примерно в июне 2007 года R ввел хэширование элементов CHARSXP в базовом коде C благодаря Сету Фалкону.Это означало, что строки символов хэшируются в целочисленное представление и сохраняются в глобальной таблице в R. Каждый раз, когда в R требуется заданная строка, на нее может ссылаться ее базовое целое число.Это эффективно создает глобально фактор кодирования поведения строк из ранее.После того, как это было реализовано, с точки зрения эффективности было мало что получить путем кодирования символьных переменных как фактора.Конечно, вам все еще нужно было использовать «факторы» для функций моделирования....

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