2015-05-13 40 views
0

這是我已經問過的一個問題的一個變體,但是我認爲這是一個單獨的問題。我使用R來清理一些文本文件。這些是字母,即字符串。我使用NLP,所以這些是NLP字符串,而不是基本的R字符串。簡化版本如下所示:在R中編寫NLP字符串函數

library(NLP) 

letter1 <- as.String(c("here is some text")) 
letter2 <- as.String(c("and here is some more text")) 
letter3 <- as.String(c("and this is the final one")) 

list <- list(letter1 = letter1, letter2 = letter2, letter3 = letter3) 

當我想要導出這些文本文件時,會出現問題。 (我想在一個單獨的文本文件中的每個字母,對應於它的名稱列表中的文件名)鑑於張貼在前面一個問題的解決方案,我用下面的:

for (i in 1:length(list)) { 
write.csv(list[i], file=paste0("~/desktop/", names(list)[i])) 
} 

當我做這個,我收到一條錯誤消息,說cannot coerce class ""String"" to a data.frame。所以我把它們轉換成R鹼基字符串,如下:

list2 <- lapply(list, function(x){ 
x = toString(x) 
x 
}) 

這個差不多工作。但是,輸出看起來像這樣(爲第一個):

"","letter1" 
"1","here is some text" 

我只想here is some text。我不想"", "letter1", or "1," or the quotation marks around這裏是一些文字。這可能嗎?

+0

當你執行'write.csv'時,默認輸出coumn頭文件。嘗試在您的'write.csv()'調用中添加'col.names = FALSE'。 – MrFlick

+0

不知道如果我把它放在錯誤的地方,但我得到'試圖設置'col.names'忽略'的警告。 – JoeF

+0

有效的CSV必須具有列名稱。如果你不需要它們,使用'write.table'。也許'writeLines'會在這裏更好。 – Roland

回答

0

我的例子必須與我自己的數據有所不同。我的數據最簡單的解決方案是使用cat(),雖然這不適用於上述示例。我會在這裏發佈答案,但如果有幫助的話。我不確定是否肯定編輯示例或保持它的樣子,以反映實際歷史。