从提供 NA 的 TM 包中取消语料库
Unlisting Corpus from TM package giving NA's
我有一个使用 TM 包创建的语料库,我在其中应用了所有转换并准备好将其转换回数据框。
当我使用
twit[[1]]$content
我可以看到我的数据。但是,当我尝试取消列出它时,我的所有记录都没有。
twitCln <- data.frame(text=unlist(sapply(twit, '[', "content")), stringsAsFactors=F)
链接问题 在唯一具有相同问题但似乎没有解决方案的答案之后进行了讨论。
这是一些可重现的代码。
library(tm)
bbTwit <- as.data.frame(c("Text Line One!", "Text Line 2"), stringsAsFactors = F)
colnames(bbTwit) <- 'Contents'
bbTwit$doc_id <- row.names(bbTwit)
twit <- bbTwit[c('doc_id','Contents')]
colnames(twit) <- c('doc_id','text')
twit <-Corpus(DataframeSource(data.frame(twit)))
twit <-tm_map(twit, removePunctuation)
twit <-tm_map(twit, stripWhitespace)
twit[[1]]$content
twitCln <- data.frame(text=unlist(sapply(twit, '[', "content")), stringsAsFactors=F)
预期输出将是一个包含 2 个观察值的数据框,其中 "Text Line One" 是第一个记录,"Text Line 2" 是第二个记录。我得到的是 NA
的两个观察结果
根据您对所需输出的描述,听起来您想要
mydf <- data.frame(unlist(twit)[1:(length(unlist(twit))-1)])
content1 Text Line One
content2 Text Line 2
其中 row/column 名称当然可以设置为任何你喜欢的 names()
。
或者对于一个简单的案例:
rbind(twit[[1]]$content,
twit[[2]]$content)
[1,] "Text Line One"
[2,] "Text Line 2"
例如
mydf <- data.frame(rbind(twit[[1]]$content,
twit[[2]]$content)
)
colnames(mydf) <- "Pretty Column"
mydf
Pretty Column
1 Text Line One
2 Text Line 2
要取出内容,只需使用content()
函数即可。例如
content(twit)
# [1] "Text Line One" "Text Line 2"
或者放在data.frame
data.frame(text=content(twit))
# text
# 1 Text Line One
# 2 Text Line 2
我有一个使用 TM 包创建的语料库,我在其中应用了所有转换并准备好将其转换回数据框。
当我使用
twit[[1]]$content
我可以看到我的数据。但是,当我尝试取消列出它时,我的所有记录都没有。
twitCln <- data.frame(text=unlist(sapply(twit, '[', "content")), stringsAsFactors=F)
链接问题
这是一些可重现的代码。
library(tm)
bbTwit <- as.data.frame(c("Text Line One!", "Text Line 2"), stringsAsFactors = F)
colnames(bbTwit) <- 'Contents'
bbTwit$doc_id <- row.names(bbTwit)
twit <- bbTwit[c('doc_id','Contents')]
colnames(twit) <- c('doc_id','text')
twit <-Corpus(DataframeSource(data.frame(twit)))
twit <-tm_map(twit, removePunctuation)
twit <-tm_map(twit, stripWhitespace)
twit[[1]]$content
twitCln <- data.frame(text=unlist(sapply(twit, '[', "content")), stringsAsFactors=F)
预期输出将是一个包含 2 个观察值的数据框,其中 "Text Line One" 是第一个记录,"Text Line 2" 是第二个记录。我得到的是 NA
的两个观察结果根据您对所需输出的描述,听起来您想要
mydf <- data.frame(unlist(twit)[1:(length(unlist(twit))-1)])
content1 Text Line One content2 Text Line 2
其中 row/column 名称当然可以设置为任何你喜欢的 names()
。
或者对于一个简单的案例:
rbind(twit[[1]]$content,
twit[[2]]$content)
[1,] "Text Line One" [2,] "Text Line 2"
例如
mydf <- data.frame(rbind(twit[[1]]$content,
twit[[2]]$content)
)
colnames(mydf) <- "Pretty Column"
mydf
Pretty Column 1 Text Line One 2 Text Line 2
要取出内容,只需使用content()
函数即可。例如
content(twit)
# [1] "Text Line One" "Text Line 2"
或者放在data.frame
data.frame(text=content(twit))
# text
# 1 Text Line One
# 2 Text Line 2