Я пытаюсь получить доступ к символьным строкам из вектора в цикле.В R: Как я могу выполнить символьные строки в цикле?
У меня есть Corpus, как это:
library(tm)
corpus = Corpus(VectorSource(c("cfilm,cgame,ccd","cd,film,cfilm")))
Моя цель состоит в том, чтобы избавиться от всех ненужных «C» символы. Обратите внимание, что это означает, что я не хочу удалять c из cd, но ccd, cgame и т. Д.
Я использую эту функцию, которая принимает корпус и удаляет термин со вторым.
toString = content_transformer(function(x,from,to)gsub(from, to, x))
Так, например, заменить cgame с игрой, я использую
corpus = tm_map(corpus,toString,"cgame","game")
Теперь я вместо того, чтобы повторять эту линию для всех членов, я хотел бы использовать цикл, который перебирает ко всем возможным заменам с использованием вектора с соответствующими терминами.
replace = c("game","film","cd")
Я попробовал два подхода, но ни один из них не будет работать:
for(i in replace){tm_map(corpus,toString,paste("c",get(i),sep=""),get(i))}
и
for(i in 1:length(replace)){tm_map(corpus,toString,paste("c",replace[i],sep=""),replace[i])}
В первом случае R говорит мне, что он не может найти объект получил по get (i): Error in get(i) : object 'game' not found
. Во втором случае нет сообщения об ошибке, но в корпусе ничего не меняется.
Как я могу запросить элементы в векторе в виде строк, поэтому для контура будет повторяться для всех терминов, что я сделал с corpus = tm_map(corpus,toString,"cgame","game)
Пожалуйста, добавьте из какого пакета функцию 'Corpus'. Обратите внимание, что в первой строке кода нет 3 скобок, поэтому, пожалуйста, отрегулируйте их. – SabDeM