我有一个data.table,其因子列具有空白级别.我需要得到行计数和其他变量的总和,所有变量都按多个因素分组,包括空级别的变量.我的问题是类似这样的一个,但在这里我需要计数多因素.
例如,让data.table为:
library('data.table')
dtr <- data.table(v1=sample(1:15),
v2=factor(sample(letters[1:3], 15, replace = TRUE),levels=letters[1:5]),
v3=sample(c("yes", "no"), 15, replace = TRUE))
Run Code Online (Sandbox Code Playgroud)
我想做以下事情:
dtr[,list(freq=.N,mm=sum(v1,na.rm=T)),by=list(v2,v3)]
#Output is:
v2 v3 freq mm
1: b yes 4 22
2: b no 1 13
3: c no 3 10
4: a no 4 49
5: c yes 1 10
6: a yes 2 16
Run Code Online (Sandbox Code Playgroud)
我希望输出包括v2的空级别("d"和"e"),如同table(dtr$v2,dtr$v3),所以最终输出应该看起来(顺序无关紧要):
v2 v3 freq mm
1: b yes 4 22
2: b no 1 13
3: c no 3 10
4: …Run Code Online (Sandbox Code Playgroud) 我有一个数据表,其日期列显示UTC时区.使用DT的最后一个开发版本,可以选择将日期列转换为语言环境字符串,一切都在闪亮的webapp中很好地显示.但是,如果用户将通过按钮扩展名下载表,则日期列将以UTC时区(并且格式不可读)导出
library(DT)
library(shiny)
df <- data.frame(a = 1:100, b = 1:100,
d=seq(as.POSIXct("2017-08-23 10:00:00"), as.POSIXct("2017-11-30 10:00:00"), by = "days"))
ui <- fluidPage(
dataTableOutput("table")
)
server <- function(input, output){
output$table <- DT::renderDataTable({
datatable(df,
extensions = c("Buttons"),
options = list(dom = 'Bfrtip',
buttons = list("csv",list(extend='excel',filename="DF"))
)) %>% formatDate(3, "toLocaleString", params = list('fr-FR'))
})
}
shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)
因此,如果本地操作系统时区是+5,它将显示"23/08/2017 à 10:00:00"在一个闪亮的webapp,但"2017-08-23T05:00:00Z"在excel文件中.有什么方法可以格式化出口吗?
我想在utf-8中为非英语文本创建一个wordcloud(实际上,它是用哈萨克语).
文本在tm包的检查功能中完全显示.但是,当我搜索单词频率时,所有内容都显示不正确:
问题是文本显示的是编码字符而不是单词.西里尔字符正确显示.通常,wordcloud变得一团糟.
有可能以某种方式为tm函数分配编码吗?我试过这个,但文本本身很好,问题是使用tm包.
让示例文本为:
Оларман - әлемелдеріментерезесітеңңатынасқұрып,әлемкартасынанойыптұрыпорыналатынТәуелсізМемлекетатануеді.Оларман - тұрмысыбақуатты,түтінітүзуұшқан,ұрпағыертеңінесенімменқарайтынбақыттыЕлболуеді.Бізармандардыақиқатқаайналдырдық.МәңгілікЕлдіңіргетасынқаладық.Менқоғамда«Қазақелініңңлттықидеясықандайболуыкерек?»дегенсауалжиіталқығатүсетінінкөріпжүрмін.Бізүшінболашағымызғабағдарететін,ұлттыұйыстырып,ұлымақсаттарғажетелейтінидеябар.Ол - МәңгілікЕлидеясы.ТәуелсіздікпенбіргехалқымызМәңгілікМұраттарынақолжеткізді.
我的简单代码是:(基于onertipaday.blogspot.com教程:)
require(tm)
require(wordcloud)
text<-readLines("text.txt", encoding="UTF-8")
ap.corpus <- Corpus(DataframeSource(data.frame(text)))
ap.corpus <- tm_map(ap.corpus, removePunctuation)
ap.corpus <- tm_map(ap.corpus, tolower)
ap.tdm <- TermDocumentMatrix(ap.corpus)
ap.m <- as.matrix(ap.tdm)
ap.v <- sort(rowSums(ap.m),decreasing=TRUE)
ap.d <- data.frame(word = names(ap.v),freq=ap.v)
table(ap.d$freq)
1 2
44 4
findFreqTerms(ap.tdm, lowfreq=2)
[1] "<U+04D9>???" "?????" "???"
[4] "?<U+04D9><U+04A3>?????"
Run Code Online (Sandbox Code Playgroud)
这些词应该是:"Әлем",арман","еді","мәңгілік".它们在inspect(ap.corpus)输出中正确显示.
非常感谢任何帮助!:)