我有大量文本(12,000 个文档,每个文档有数千个单词),现在我想在每个文档(日期、创建者、标题)上添加元数据,这些元数据存储在单独的日期框架中。
原始数据的基本结构是这样的:
doc1 = "I am a student"
doc2 = "You are a student too"
corpus = c(list(doc1), list(doc2))
corpus = corpus(VectorSource(corpus))
info = data.frame(date = c(2017-01-01, 2017-01-02), creator = c("Jack", "Jone"), title = c("12331""32191")
我设法做的是一个循环:
for (i in 1:length(corpus)){
DublinCore(corpus[[i]], tag = "date") = info$date[i]
DublinCore(corpus[[i]], tag = "creator") = info$creator[i]
DublinCore(corpus[[i]], tag = "title") = info$title[i]
}
然而正如我所说,我有很多文档,我无法承受循环的低效率。所以我正在考虑使用 sapply 函数:
sapply(1:length(corpus), function(x) DublinCore(corpus[[x]], tag = "date") = info$date[x])
sapply(1:length(corpus), function(x) DublinCore(corpus[[x]], tag = "creator") = info$creator[x])
sapply(1:length(corpus), function(x) DublinCore(corpus[[x]], tag = "title") = info$title[x])
它的作用是直接为我打印出来,而不是真正改变元标记。但是我不知道如何或在哪里存储结果。
如果您能调查一下这个问题,我将不胜感激。先感谢您。