Создание вектора из файла в R - PullRequest
9 голосов
/ 31 мая 2011

Я новичок в R, и мой вопрос должен быть тривиальным. Мне нужно создать облако слов из TXT-файла, содержащего слова и номер их появления. Для этого я использую пакет snippets . Как видно из ссылки внизу, сначала я должен создать вектор (верно ли, что слова - это вектор?), Как показано ниже.

> words <- c(apple=10, pie=14, orange=5, fruit=4)

Моя задача - сделать то же самое, но создать вектор из файла, который будет содержать слова и их вхождения. Я был бы очень рад, если бы вы могли дать мне несколько советов.

Кроме того, чтобы понять формат файла, который нужно вставить, я записываю векторные слова в файл.

> write(words, file="words.txt")

Однако файл words.txt содержит только значения, но не имена (яблоко, пирог и т. Д.).

$ cat words.txt
10 14 5 4

Спасибо.

Ответы [ 2 ]

5 голосов
/ 31 мая 2011

words - это вектор с именем , различие важно в контексте функции cloud(), если я правильно прочитал справку.

Правильно записать данные в файл:

write.table(words, file = "words.txt")

Создайте свой файл вхождения слов как созданный текстовый файл. Когда вы читаете его обратно в R, вам нужно сделать небольшую манипуляцию:

> newWords <- read.table("words.txt", header = TRUE)
> newWords
        x
apple  10
pie    14
orange  5
fruit   4
> words <- newWords[,1]
> names(words) <- rownames(newWords)
> words
 apple    pie orange  fruit 
    10     14      5      4

То, что мы здесь делаем, - это чтение файла в newWords, подмножество которого содержит единственный столбец (переменную), который мы храним в words. Последний шаг - взять имена строк из прочитанного файла и применить их как «имена» к вектору words. Мы делаем последний шаг, используя функцию names().

3 голосов
/ 31 мая 2011

Да, «вектор» - правильный термин.

EDIT:
Лучшим методом, чем write.table, было бы использовать save () и load ():

save(words. file="svwrd.rda")
load(file="svwrd.rda")

Комбинация сохранения / загрузки сохранила всю структуру, а не сделала принуждение. Сценарий write.table, за которым следуют names () <- это своего рода хлопот, как вы можете видеть как в ответе Гевина здесь, так и в моем ответе на rhelp. </p>

Первоначальный ответ: Предложите вам использовать as.data.frame, чтобы привести к фрейму данных, а затем write.table () для записи в файл.

write.table(as.data.frame(words), file="savew.txt")
saved <- read.table(file="savew.txt")
saved
       words
apple     10
pie       14
orange     5
fruit      4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...