作業四

library(readr)
lvr_data <- read_csv("lvr_prices_mac.csv")
Missing column names filled in: 'X1' [1]Parsed with column specification:
cols(
  .default = col_character(),
  X1 = col_integer(),
  land_sqmeter = col_double(),
  trading_ymd = col_date(format = ""),
  finish_ymd = col_date(format = ""),
  building_sqmeter = col_double(),
  room = col_integer(),
  living_room = col_integer(),
  bath = col_integer(),
  total_price = col_integer(),
  price_per_sqmeter = col_double(),
  parking_sqmeter = col_double(),
  parking_price = col_integer()
)
See spec(...) for full column specifications.

|                                                                               |   0%           
|                                                                               |   0%           
|                                                                               |   1%           
|=                                                                              |   1%           
|=                                                                              |   1%           
|=                                                                              |   2%           
|==                                                                             |   2%           
|==                                                                             |   3%           
|==                                                                             |   3%           
|===                                                                            |   3%           
|===                                                                            |   4%    1 MB
|===                                                                            |   4%    1 MB
|====                                                                           |   5%    1 MB
|====                                                                           |   5%    1 MB
|====                                                                           |   5%    1 MB
|=====                                                                          |   6%    1 MB
|=====                                                                          |   6%    1 MB
|=====                                                                          |   7%    1 MB
|=====                                                                          |   7%    1 MB
|======                                                                         |   7%    1 MB
|======                                                                         |   8%    2 MB
|======                                                                         |   8%    2 MB
|=======                                                                        |   9%    2 MB
|=======                                                                        |   9%    2 MB
|=======                                                                        |   9%    2 MB
|========                                                                       |  10%    2 MB
|========                                                                       |  10%    2 MB
|========                                                                       |  10%    2 MB
|=========                                                                      |  11%    2 MB
|=========                                                                      |  11%    2 MB
|=========                                                                      |  12%    2 MB
|=========                                                                      |  12%    3 MB
|==========                                                                     |  12%    3 MB
|==========                                                                     |  13%    3 MB
|==========                                                                     |  13%    3 MB
|===========                                                                    |  13%    3 MB
|===========                                                                    |  14%    3 MB
|===========                                                                    |  14%    3 MB
|============                                                                   |  15%    3 MB
|============                                                                   |  15%    3 MB
|============                                                                   |  15%    3 MB
|=============                                                                  |  16%    3 MB
|=============                                                                  |  16%    4 MB
|=============                                                                  |  17%    4 MB
|==============                                                                 |  17%    4 MB
|==============                                                                 |  17%    4 MB
|==============                                                                 |  18%    4 MB
|==============                                                                 |  18%    4 MB
|===============                                                                |  19%    4 MB
|===============                                                                |  19%    4 MB
|===============                                                                |  19%    4 MB
|================                                                               |  20%    4 MB
|================                                                               |  20%    5 MB
|================                                                               |  21%    5 MB
|=================                                                              |  21%    5 MB
|=================                                                              |  21%    5 MB
|=================                                                              |  22%    5 MB
|==================                                                             |  22%    5 MB
|==================                                                             |  23%    5 MB
|==================                                                             |  23%    5 MB
|===================                                                            |  23%    5 MB
|===================                                                            |  24%    5 MB
|===================                                                            |  24%    6 MB
|===================                                                            |  24%    6 MB
|====================                                                           |  25%    6 MB
|====================                                                           |  25%    6 MB
|====================                                                           |  26%    6 MB
|=====================                                                          |  26%    6 MB
|=====================                                                          |  26%    6 MB
|=====================                                                          |  27%    6 MB
|======================                                                         |  27%    6 MB
|======================                                                         |  28%    6 MB
|======================                                                         |  28%    6 MB
|=======================                                                        |  28%    7 MB
|=======================                                                        |  29%    7 MB
|=======================                                                        |  29%    7 MB
|========================                                                       |  30%    7 MB
|========================                                                       |  30%    7 MB
|========================                                                       |  30%    7 MB
|=========================                                                      |  31%    7 MB
|=========================                                                      |  31%    7 MB
|=========================                                                      |  32%    7 MB
|=========================                                                      |  32%    7 MB
|==========================                                                     |  32%    8 MB
|==========================                                                     |  33%    8 MB
|==========================                                                     |  33%    8 MB
|===========================                                                    |  34%    8 MB
|===========================                                                    |  34%    8 MB
|===========================                                                    |  34%    8 MB
|============================                                                   |  35%    8 MB
|============================                                                   |  35%    8 MB
|============================                                                   |  35%    8 MB
|=============================                                                  |  36%    8 MB
|=============================                                                  |  36%    8 MB
|=============================                                                  |  37%    9 MB
|==============================                                                 |  37%    9 MB
|==============================                                                 |  37%    9 MB
|==============================                                                 |  38%    9 MB
|==============================                                                 |  38%    9 MB
|===============================                                                |  39%    9 MB
|===============================                                                |  39%    9 MB
|===============================                                                |  39%    9 MB
|================================                                               |  40%    9 MB
|================================                                               |  40%    9 MB
|================================                                               |  41%   10 MB
|=================================                                              |  41%   10 MB
|=================================                                              |  41%   10 MB
|=================================                                              |  42%   10 MB
|==================================                                             |  42%   10 MB
|==================================                                             |  42%   10 MB
|==================================                                             |  43%   10 MB
|===================================                                            |  43%   10 MB
|===================================                                            |  44%   10 MB
|===================================                                            |  44%   10 MB
|===================================                                            |  44%   10 MB
|====================================                                           |  45%   11 MB
|====================================                                           |  45%   11 MB
|====================================                                           |  46%   11 MB
|=====================================                                          |  46%   11 MB
|=====================================                                          |  46%   11 MB
|=====================================                                          |  47%   11 MB
|======================================                                         |  47%   11 MB
|======================================                                         |  48%   11 MB
|======================================                                         |  48%   11 MB
|=======================================                                        |  48%   11 MB
|=======================================                                        |  49%   12 MB
|=======================================                                        |  49%   12 MB
|=======================================                                        |  49%   12 MB
|========================================                                       |  50%   12 MB
|========================================                                       |  50%   12 MB
|========================================                                       |  51%   12 MB
|=========================================                                      |  51%   12 MB
|=========================================                                      |  51%   12 MB
|=========================================                                      |  52%   12 MB
|==========================================                                     |  52%   12 MB
|==========================================                                     |  53%   12 MB
|==========================================                                     |  53%   13 MB
|===========================================                                    |  53%   13 MB
|===========================================                                    |  54%   13 MB
|===========================================                                    |  54%   13 MB
|============================================                                   |  55%   13 MB
|============================================                                   |  55%   13 MB
|============================================                                   |  55%   13 MB
|=============================================                                  |  56%   13 MB
|=============================================                                  |  56%   13 MB
|=============================================                                  |  57%   13 MB
|=============================================                                  |  57%   14 MB
|==============================================                                 |  57%   14 MB
|==============================================                                 |  58%   14 MB
|==============================================                                 |  58%   14 MB
|===============================================                                |  59%   14 MB
|===============================================                                |  59%   14 MB
|===============================================                                |  59%   14 MB
|================================================                               |  60%   14 MB
|================================================                               |  60%   14 MB
|================================================                               |  61%   14 MB
|=================================================                              |  61%   14 MB
|=================================================                              |  61%   15 MB
|=================================================                              |  62%   15 MB
|==================================================                             |  62%   15 MB
|==================================================                             |  62%   15 MB
|==================================================                             |  63%   15 MB
|===================================================                            |  63%   15 MB
|===================================================                            |  64%   15 MB
|===================================================                            |  64%   15 MB
|===================================================                            |  64%   15 MB
|====================================================                           |  65%   15 MB
|====================================================                           |  65%   16 MB
|====================================================                           |  66%   16 MB
|=====================================================                          |  66%   16 MB
|=====================================================                          |  66%   16 MB
|=====================================================                          |  67%   16 MB
|======================================================                         |  67%   16 MB
|======================================================                         |  68%   16 MB
|======================================================                         |  68%   16 MB
|=======================================================                        |  68%   16 MB
|=======================================================                        |  69%   16 MB
|=======================================================                        |  69%   16 MB
|========================================================                       |  70%   17 MB
|========================================================                       |  70%   17 MB
|========================================================                       |  70%   17 MB
|========================================================                       |  71%   17 MB
|=========================================================                      |  71%   17 MB
|=========================================================                      |  71%   17 MB
|=========================================================                      |  72%   17 MB
|==========================================================                     |  72%   17 MB
|==========================================================                     |  73%   17 MB
|==========================================================                     |  73%   17 MB
|===========================================================                    |  73%   18 MB
|===========================================================                    |  74%   18 MB
|===========================================================                    |  74%   18 MB
|============================================================                   |  75%   18 MB
|============================================================                   |  75%   18 MB
|============================================================                   |  75%   18 MB
|=============================================================                  |  76%   18 MB
|=============================================================                  |  76%   18 MB
|=============================================================                  |  77%   18 MB
|==============================================================                 |  77%   18 MB
|==============================================================                 |  77%   19 MB
|==============================================================                 |  78%   19 MB
|==============================================================                 |  78%   19 MB
|===============================================================                |  79%   19 MB
|===============================================================                |  79%   19 MB
|===============================================================                |  79%   19 MB
|================================================================               |  80%   19 MB
|================================================================               |  80%   19 MB
|================================================================               |  81%   19 MB
|=================================================================              |  81%   19 MB
|=================================================================              |  81%   19 MB
|=================================================================              |  82%   20 MB
|==================================================================             |  82%   20 MB
|==================================================================             |  83%   20 MB
|==================================================================             |  83%   20 MB
|===================================================================            |  83%   20 MB
|===================================================================            |  84%   20 MB
|===================================================================            |  84%   20 MB
|===================================================================            |  84%   20 MB
|====================================================================           |  85%   20 MB
|====================================================================           |  85%   20 MB
|====================================================================           |  86%   21 MB
|=====================================================================          |  86%   21 MB
|=====================================================================          |  86%   21 MB
|=====================================================================          |  87%   21 MB
|======================================================================         |  87%   21 MB
|======================================================================         |  88%   21 MB
|======================================================================         |  88%   21 MB
|=======================================================================        |  88%   21 MB
|=======================================================================        |  89%   21 MB
|=======================================================================        |  89%   21 MB
|========================================================================       |  90%   21 MB
|========================================================================       |  90%   22 MB
|========================================================================       |  90%   22 MB
|=========================================================================      |  91%   22 MB
|=========================================================================      |  91%   22 MB
|=========================================================================      |  92%   22 MB
|==========================================================================     |  92%   22 MB
|==========================================================================     |  92%   22 MB
|==========================================================================     |  93%   22 MB
|==========================================================================     |  93%   22 MB
|===========================================================================    |  94%   22 MB
|===========================================================================    |  94%   23 MB
|===========================================================================    |  94%   23 MB
|============================================================================   |  95%   23 MB
|============================================================================   |  95%   23 MB
|============================================================================   |  96%   23 MB
|=============================================================================  |  96%   23 MB
|=============================================================================  |  96%   23 MB
|=============================================================================  |  97%   23 MB
|============================================================================== |  97%   23 MB
|============================================================================== |  97%   23 MB
|============================================================================== |  98%   23 MB
|===============================================================================|  98%   24 MB
|===============================================================================|  99%   24 MB
|===============================================================================|  99%   24 MB
|===============================================================================|  99%   24 MB
|================================================================================| 100%   24 MB
32 parsing failures.
 row         col   expected     actual
1282 total_price an integer 6700000000
2243 total_price an integer 3882685600
2244 total_price an integer 3373314400
4629 total_price an integer 3050000000
5890 total_price an integer 3133800000
.... ........... .......... ..........
See problems(...) for more details.
table(format(lvr_data$trading_ymd, '%Y-%m') )

1973-08 1975-10 1989-03 1989-06 1994-06 1998-01 
      3       1       1       1       1       1 
2001-12 2003-04 2003-10 2003-12 2004-04 2004-12 
      1       1       1       1       4       1 
2005-03 2005-04 2006-05 2007-06 2007-11 2007-12 
      1       1       1       2       1       1 
2008-03 2008-04 2008-07 2008-11 2008-12 2009-01 
      1       4       3       5       1       3 
2009-02 2009-03 2009-04 2009-05 2009-06 2009-07 
      6      19      25      31      31      15 
2009-08 2009-09 2009-10 2009-11 2009-12 2010-01 
     20      16      70      64      38     101 
2010-02 2010-03 2010-04 2010-05 2010-06 2010-07 
     31      45     190      83     190     120 
2010-08 2010-09 2010-10 2010-11 2010-12 2011-01 
    100     121     115      97     142     152 
2011-02 2011-03 2011-04 2011-05 2011-06 2011-07 
     64      83      24      20      31      75 
2011-08 2011-09 2011-10 2011-11 2011-12 2012-01 
     63      99      85      77      62      43 
2012-02 2012-03 2012-04 2012-05 2012-06 2012-07 
     38     137     215     192     182     978 
2012-08 2012-09 2012-10 2012-11 2012-12 2013-01 
   1853    1950    2625    2519    3524    2179 
2013-02 2013-03 2013-04 2013-05 2013-06 2013-07 
   1687    3009    3266    3449    3050    2761 
2013-08 2013-09 2013-10 2013-11 2013-12 2014-01 
   2543    2715    2800    2820    3850    1953 
2014-02 2014-03 2014-04 2014-05 2014-06 2014-07 
   1508    2638    2883    2220    1995    2123 
2014-08 2014-09 2014-10 2014-11 2014-12 2015-01 
   1849    1913    2164    2179    2884    1454 
2015-02 2015-03 2015-04 2015-05 2015-06 2015-07 
    948    1816    1821    1717    1621    1697 
2015-08 2015-09 2015-10 2015-11 2015-12 2016-01 
   1476    1632    2074    2392    2740    1048 
2016-02 2016-03 2016-04 2016-05 
    590    1036     685      47 
lvr_data$trading_ym <- as.Date(format(lvr_data$trading_ymd, '%Y-%m-01'))
library(dplyr)
lvr_stat <- lvr_data %>% select(trading_ym, total_price) %>% filter(trading_ym >= '2012-01-01') %>% group_by(trading_ym) %>% summarise(overall_price = sum(as.numeric(total_price), na.rm=TRUE))
plot(overall_price ~ trading_ym,lvr_stat, type='l')
lvr_stat2 <- lvr_data %>% select(trading_ym, total_price, area) %>% filter(trading_ym >= '2012-01-01') %>% group_by(trading_ym, area) %>% summarise(overall_price = sum(as.numeric(total_price), na.rm=TRUE))
lvr_stat2$area <- as.factor(lvr_stat2$area)
# Answer 1
par(mfrow = c(4,3))

for (a in levels(lvr_stat2$area)){
plot(overall_price ~ trading_ym
,lvr_stat2[lvr_stat2$area == a,], type='l', main = a)
}
# Answer2
par(mfrow=c(1,1))

boxplot(overall_price ~ area
,lvr_stat2, cex=0.1)
# Answer3
par(mfrow=c(1,1))

lvr_stat3 <- lvr_data %>% select(total_price, area) %>% group_by(area) %>% summarise(overall_price = sum(as.numeric(total_price), na.rm=TRUE)) %>% arrange(desc(overall_price))
barplot(lvr_stat3$overall_price, col =factor(lvr_stat3$area), names.arg = lvr_stat3$area)

房價觀察

lvr_stat4 <- lvr_data %>% filter((price_per_sqmeter > 0) &  (area == '大安區')  & (trading_ym> '2012-01-01') & (trading_target == '房地(土地+建物)')) %>% select(trading_ym, price_per_sqmeter) %>% group_by(trading_ym) %>% summarise(median_price = median(as.numeric(price_per_sqmeter), na.rm=TRUE))

lvr_stat4$median_price <- lvr_stat4$median_price/ 0.3025
lvr_stat4
plot(median_price ~ trading_ym, data = lvr_stat4, type= 'l')

英文斷詞

strsplit(a , ' ')
[[1]]
[1] "this" "is"   "a"    "book"

中文斷詞

#install.packages("jiebaR")
library(jiebaR)
a <- '酸民婉君也可以報名嗎?'
mixseg <- worker()
segment(a, mixseg)


s<-"那我們酸民婉君也可以報名嗎"
mixseg<-worker()
segment(code=s , jiebar=mixseg)

edit_dict()
USERPATH


tagseg <- worker('tag')
segment(code=s , jiebar=tagseg)

test1 = worker("keywords",topn=3)
test1 <= s

s <- '金曲歌王蕭敬騰(老蕭)驚傳全身癱軟發冷,連站都無力,原來是感染「A型流感」,不得不取消今晚8時半在建國中學校慶的採訪通告。疾病管制署表示,今年的流感疫情在10月中開始出現,11月初曾達到1周32例重症。但由於今年擴大公費流感疫苗的施打對象,因此11月初以後疫情漸緩,沒有上升,可能要問蕭敬騰有沒有打流感疫苗。'
strsplit(s, '。|,|」|(|)|「')

library(jiebaR)
mixseg <- worker()
segment(s, mixseg)


Calculate TF-IDF

a   <-c("a")
abb <-c("a", "b", "b")
abc <-c("a", "b", "c")
D <-list(a, abb, abc)
tfidf<-function(t,d, D){
  tf<-table(d)[names(table(d))==t]/sum(table(d))
  idf<-log(length(D)/sum(sapply(D,function(e)t%in%e)))
  tf*idf
}
tfidf('a', a, D)
a 
0 
tf  <- 1/1
idf <- log(3/3)
tf * idf
[1] 0
tfidf('a', abb, D)
a 
0 
tf  <- 1/3
idf <- log(3/3)
tf * idf
[1] 0
tfidf('b', abb, D)
        b 
0.2703101 
tf  <- 2/3
idf <- log(3/2)
tf * idf
[1] 0.2703101
tfidf('b', abc, D)
       b 
0.135155 
tf  <- 1/3
idf <- log(3/2)
tf * idf
[1] 0.135155
tfidf('c', abc, D)
        c 
0.3662041 
tf  <- 1/3
idf <- log(3/1)
tf * idf
[1] 0.3662041

詞頻分析 (文字資料)

article <- '金曲歌王蕭敬騰(老蕭)驚傳全身癱軟發冷,連站都無力,原來是感染「A型流感」,不得不取消今晚8時半在建國中學校慶的採訪通告。疾病管制署表示,今年的流感疫情在10月中開始出現,11月初曾達到1周32例重症。但由於今年擴大公費流感疫苗的施打對象,因此11月初以後疫情漸緩,沒有上升,可能要問蕭敬騰有沒有打流感疫苗。
疾管署副署長莊人祥表示,今年10月起的流感季疫苗施打,擴大讓50至64歲成人及13至18歲青少年等,均納入公費疫苗施打對象,接種涵蓋率從全人口的13%增加25%,而流感疫情雖提早在10月中開始出現,11月初曾達到1周32例重症,但此後每周的重症人數逐漸減緩,沒再上升。相較於今年年初1周最高311例重症,目前疫情持平,沒有增溫。
疾管署統計,今年公費流感疫苗自10月1日開打至12月8日,接種數已超過572萬劑,整體疫苗使用率逾95%。為使疫苗在流感流行季來臨前發揮最大效益,疾管署已於12月1日起擴大公費流感疫苗接種對象至全國民眾,依目前疫苗使用率估計,最近1到2周內部分縣市將陸續出現疫苗打完的情形,呼籲尚未接種的民眾把握機會儘速接種。
莊人祥提醒,民眾平時應落實勤洗手及注意呼吸道衛生,避免出入人潮擁擠、空氣不流通的公共場所,防範流感病毒;如出現呼吸困難、急促、發紺(缺氧)、血痰或痰液變濃、胸痛、意識改變、低血壓等流感危險徵兆應及早就醫,必要時依醫師指示規則使用公費抗病毒藥劑並在家休養。(黃仲丘/台北報導)'

文字雲

library(jiebaR)
mixseg      <- worker()
article.seg <- segment(article, mixseg)
tb          <- table(article.seg)

sort(tb, decreasing = TRUE)

# install.packages('wordcloud2')
library(wordcloud2)
tb2 <- tb[(nchar(names(tb)) >= 2) & (tb >= 2) & grepl('[\u4e00-\u9fa5]+', names(tb))]

wordcloud2(tb2)
wordcloud2(tb2, shape = 'triangle')

使用tm模組

library(tm)
Loading required package: NLP

英文建立詞頻矩陣

e3 <-'Hello, I am David. I have taken over 100 courses ~~~'
e3.corpus <- Corpus(VectorSource(e3))
e3.dtm    <- DocumentTermMatrix(e3.corpus)
inspect(e3.dtm)
<<DocumentTermMatrix (documents: 1, terms: 8)>>
Non-/sparse entries: 8/0
Sparsity           : 0%
Maximal term length: 7
Weighting          : term frequency (tf)

    Terms
Docs ~~~ 100 courses david. have hello, over taken
   1   1   1       1      1    1      1    1     1
dtm <- DocumentTermMatrix(e3.corpus, control=list(wordLengths=c(1, 20)))
inspect(dtm)
<<DocumentTermMatrix (documents: 1, terms: 10)>>
Non-/sparse entries: 10/0
Sparsity           : 0%
Maximal term length: 7
Weighting          : term frequency (tf)

    Terms
Docs ~~~ 100 am courses david. have hello, i over taken
   1   1   1  1       1      1    1      1 2    1     1
#install.packages('SnowballC')
stemDocument(c('image', 'imagine', 'imagination'))
[1] "imag"   "imagin" "imagin"
doc <- tm_map(e3.corpus, removeNumbers)
doc <- tm_map(doc, removePunctuation)
dtm <- DocumentTermMatrix(doc)
inspect(dtm)
<<DocumentTermMatrix (documents: 1, terms: 6)>>
Non-/sparse entries: 6/0
Sparsity           : 0%
Maximal term length: 7
Weighting          : term frequency (tf)

    Terms
Docs courses david have hello over taken
   1       1     1    1     1    1     1
removetilde <- content_transformer(
       function(x, pattern){return(gsub("~", "", x))})
doc <- tm_map(e3.corpus, removetilde)
dtm<-DocumentTermMatrix(doc)
inspect(dtm)
<<DocumentTermMatrix (documents: 1, terms: 7)>>
Non-/sparse entries: 7/0
Sparsity           : 0%
Maximal term length: 7
Weighting          : term frequency (tf)

    Terms
Docs 100 courses david. have hello, over taken
   1   1       1      1    1      1    1     1
e1 <- 'this is a book'
e2 <- 'this is my car'
e.vec <- list(e1,e2)
e.corpus <- Corpus(VectorSource(e.vec))
e.dtm    <- DocumentTermMatrix(e.corpus)
inspect(e.dtm)
<<DocumentTermMatrix (documents: 2, terms: 3)>>
Non-/sparse entries: 4/2
Sparsity           : 33%
Maximal term length: 4
Weighting          : term frequency (tf)

    Terms
Docs book car this
   1    1   0    1
   2    0   1    1
s  <- "大巨蛋案對市府同仁下封口令?柯P否認"
s1 <- "柯P市府近來飽受大巨蛋爭議"
library(jiebaR)
mixseg <- worker()
s.vec  <-  segment(s, mixseg)
s1.vec <-  segment(s1, mixseg)
s.corpus <- Corpus(VectorSource(list(s.vec, s1.vec)))
s.dtm    <- DocumentTermMatrix(s.corpus)
inspect(s.dtm)
<<DocumentTermMatrix (documents: 2, terms: 3)>>
Non-/sparse entries: 3/3
Sparsity           : 50%
Maximal term length: 8
Weighting          : term frequency (tf)

    Terms
Docs 銝n撠隞么n<e6>p 憭批楊<e8><9b>n<e7>霅<b0> 憭批楊<e8><9b>n獢<b0><8d>
   1               1            0            1
   2               0            1            0

中文詞頻矩陣

source('https://raw.githubusercontent.com/ywchiu/rtibame/master/Lib/CNCorpus.R')
s.vec  <-segment(code=s , jiebar =mixseg)
s1.vec <-segment(code=s1 , jiebar =mixseg)
s.corpus=CNCorpus(list(s.vec, s1.vec))
control.list=list(wordLengths=c(1,Inf),tokenize=space_tokenizer)
s.dtm  <- DocumentTermMatrix(s.corpus, control<-control.list)
inspect(s.dtm)
<<DocumentTermMatrix (documents: 2, terms: 11)>>
Non-/sparse entries: 14/8
Sparsity           : 36%
Maximal term length: 3
Weighting          : term frequency (tf)

    Terms
Docs 銝<8b> 憭批楊<e8><9b><8b> 撣<ba><9c> <e5><90><bb><81> <e5>隤<8d> <e7>霅<b0> 餈<be><86> 撠隞<a4> <e6>p 獢<b0><8d>
   1  1      1    1    1    1    0    0      1   1    1
   2  0      1    1    0    0    1    1      0   1    0
    Terms
Docs 憌賢<8f><97>
   1    0
   2    1

下載一例一休

source('https://raw.githubusercontent.com/ywchiu/rtibame/master/Lib/CNCorpus.R')
download.file('https://github.com/ywchiu/rtibame/raw/master/Data/oneday.csv', 'oneday.csv')

library(readr)
oneday <- read_csv("oneday.csv")


#str(oneday)

library(jiebaR)
mixseg <- worker()

article.seg <- lapply(oneday$content, function(e) segment(e, mixseg) )

s.corpus <- CNCorpus(article.seg)
control.list=list(wordLengths=c(2,Inf),tokenize=space_tokenizer)
doc       <- tm_map(s.corpus, removeNumbers)
s.dtm     <- DocumentTermMatrix(doc, control<-control.list)


#s.dtm$dimnames$Terms
findFreqTerms(s.dtm, 50,100)
dim(s.dtm)

dtm.remove <- removeSparseTerms(s.dtm, 0.95)
dim(dtm.remove)
#dtm.remove$dimnames$Terms

lapply example

a <- list(c(1,2,3), c(3,4,5))
lapply(a, sum)
LS0tDQp0aXRsZTogIkRlbW8yMDE2MTIxMCINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCiMjIOS9nOalreWbmw0KYGBge3J9DQpsaWJyYXJ5KHJlYWRyKQ0KbHZyX2RhdGEgPC0gcmVhZF9jc3YoImx2cl9wcmljZXNfbWFjLmNzdiIpDQp0YWJsZShmb3JtYXQobHZyX2RhdGEkdHJhZGluZ195bWQsICclWS0lbScpICkNCmx2cl9kYXRhJHRyYWRpbmdfeW0gPC0gYXMuRGF0ZShmb3JtYXQobHZyX2RhdGEkdHJhZGluZ195bWQsICclWS0lbS0wMScpKQ0KDQpsaWJyYXJ5KGRwbHlyKQ0KbHZyX3N0YXQgPC0gbHZyX2RhdGEgJT4lIHNlbGVjdCh0cmFkaW5nX3ltLCB0b3RhbF9wcmljZSkgJT4lIGZpbHRlcih0cmFkaW5nX3ltID49ICcyMDEyLTAxLTAxJykgJT4lIGdyb3VwX2J5KHRyYWRpbmdfeW0pICU+JSBzdW1tYXJpc2Uob3ZlcmFsbF9wcmljZSA9IHN1bShhcy5udW1lcmljKHRvdGFsX3ByaWNlKSwgbmEucm09VFJVRSkpDQoNCnBsb3Qob3ZlcmFsbF9wcmljZSB+IHRyYWRpbmdfeW0sbHZyX3N0YXQsIHR5cGU9J2wnKQ0KDQoNCmx2cl9zdGF0MiA8LSBsdnJfZGF0YSAlPiUgc2VsZWN0KHRyYWRpbmdfeW0sIHRvdGFsX3ByaWNlLCBhcmVhKSAlPiUgZmlsdGVyKHRyYWRpbmdfeW0gPj0gJzIwMTItMDEtMDEnKSAlPiUgZ3JvdXBfYnkodHJhZGluZ195bSwgYXJlYSkgJT4lIHN1bW1hcmlzZShvdmVyYWxsX3ByaWNlID0gc3VtKGFzLm51bWVyaWModG90YWxfcHJpY2UpLCBuYS5ybT1UUlVFKSkNCg0KbHZyX3N0YXQyJGFyZWEgPC0gYXMuZmFjdG9yKGx2cl9zdGF0MiRhcmVhKQ0KIyBBbnN3ZXIgMQ0KcGFyKG1mcm93ID0gYyg0LDMpKQ0KZm9yIChhIGluIGxldmVscyhsdnJfc3RhdDIkYXJlYSkpew0KcGxvdChvdmVyYWxsX3ByaWNlIH4gdHJhZGluZ195bQ0KLGx2cl9zdGF0MltsdnJfc3RhdDIkYXJlYSA9PSBhLF0sIHR5cGU9J2wnLCBtYWluID0gYSkNCn0NCg0KIyBBbnN3ZXIyDQpwYXIobWZyb3c9YygxLDEpKQ0KYm94cGxvdChvdmVyYWxsX3ByaWNlIH4gYXJlYQ0KLGx2cl9zdGF0MiwgY2V4PTAuMSkNCg0KIyBBbnN3ZXIzDQpwYXIobWZyb3c9YygxLDEpKQ0KbHZyX3N0YXQzIDwtIGx2cl9kYXRhICU+JSBzZWxlY3QodG90YWxfcHJpY2UsIGFyZWEpICU+JSBncm91cF9ieShhcmVhKSAlPiUgc3VtbWFyaXNlKG92ZXJhbGxfcHJpY2UgPSBzdW0oYXMubnVtZXJpYyh0b3RhbF9wcmljZSksIG5hLnJtPVRSVUUpKSAlPiUgYXJyYW5nZShkZXNjKG92ZXJhbGxfcHJpY2UpKQ0KYmFycGxvdChsdnJfc3RhdDMkb3ZlcmFsbF9wcmljZSwgY29sID1mYWN0b3IobHZyX3N0YXQzJGFyZWEpLCBuYW1lcy5hcmcgPSBsdnJfc3RhdDMkYXJlYSkNCg0KDQpgYGANCiMjIOaIv+WDueingOWvnw0KYGBgDQpsdnJfc3RhdDQgPC0gbHZyX2RhdGEgJT4lIGZpbHRlcigocHJpY2VfcGVyX3NxbWV0ZXIgPiAwKSAmICAoYXJlYSA9PSAn5aSn5a6J5Y2AJykgICYgKHRyYWRpbmdfeW0+ICcyMDEyLTAxLTAxJykgJiAodHJhZGluZ190YXJnZXQgPT0gJ+aIv+WcsCjlnJ/lnLAr5bu654mpKScpKSAlPiUgc2VsZWN0KHRyYWRpbmdfeW0sIHByaWNlX3Blcl9zcW1ldGVyKSAlPiUgZ3JvdXBfYnkodHJhZGluZ195bSkgJT4lIHN1bW1hcmlzZShtZWRpYW5fcHJpY2UgPSBtZWRpYW4oYXMubnVtZXJpYyhwcmljZV9wZXJfc3FtZXRlciksIG5hLnJtPVRSVUUpKQ0KDQpsdnJfc3RhdDQkbWVkaWFuX3ByaWNlIDwtIGx2cl9zdGF0NCRtZWRpYW5fcHJpY2UvIDAuMzAyNQ0KbHZyX3N0YXQ0DQpwbG90KG1lZGlhbl9wcmljZSB+IHRyYWRpbmdfeW0sIGRhdGEgPSBsdnJfc3RhdDQsIHR5cGU9ICdsJykNCmBgYA0KIyMg6Iux5paH5pa36KmeDQpgYGB7cn0NCmEgPC0gJ3RoaXMgaXMgYSBib29rJw0Kc3Ryc3BsaXQoYSAsICcgJykNCmBgYA0KDQojIyDkuK3mlofmlrfoqZ4NCmBgYA0KI2luc3RhbGwucGFja2FnZXMoImppZWJhUiIpDQpsaWJyYXJ5KGppZWJhUikNCmEgPC0gJ+mFuOawkeWpieWQm+S5n+WPr+S7peWgseWQjeWXjj8nDQptaXhzZWcgPC0gd29ya2VyKCkNCnNlZ21lbnQoYSwgbWl4c2VnKQ0KDQoNCnM8LSLpgqPmiJHlgJHphbjmsJHlqYnlkJvkuZ/lj6/ku6XloLHlkI3ll44iDQptaXhzZWc8LXdvcmtlcigpDQpzZWdtZW50KGNvZGU9cyAsIGppZWJhcj1taXhzZWcpDQoNCmVkaXRfZGljdCgpDQpVU0VSUEFUSA0KDQoNCnRhZ3NlZyA8LSB3b3JrZXIoJ3RhZycpDQpzZWdtZW50KGNvZGU9cyAsIGppZWJhcj10YWdzZWcpDQoNCnRlc3QxID0gd29ya2VyKCJrZXl3b3JkcyIsdG9wbj0zKQ0KdGVzdDEgPD0gcw0KDQpzIDwtICfph5Hmm7LmrYznjovola3mlazpqLDvvIjogIHola3vvInpqZrlgrPlhajouqvnmbHou5/nmbzlhrfvvIzpgKPnq5npg73nhKHlipvvvIzljp/kvobmmK/mhJ/mn5PjgIxB5Z6L5rWB5oSf44CN77yM5LiN5b6X5LiN5Y+W5raI5LuK5pmaOOaZguWNiuWcqOW7uuWci+S4reWtuOagoeaFtueahOaOoeioqumAmuWRiuOAgueWvueXheeuoeWItue9suihqOekuu+8jOS7iuW5tOeahOa1geaEn+eWq+aDheWcqDEw5pyI5Lit6ZaL5aeL5Ye654++77yMMTHmnIjliJ3mm77pgZTliLAx5ZGoMzLkvovph43nl4fjgILkvYbnlLHmlrzku4rlubTmk7TlpKflhazosrvmtYHmhJ/nlqvoi5fnmoTmlr3miZPlsI3osaHvvIzlm6DmraQxMeaciOWIneS7peW+jOeWq+aDhea8uOe3qe+8jOaykuacieS4iuWNh++8jOWPr+iDveimgeWVj+iVreaVrOmosOacieaykuacieaJk+a1geaEn+eWq+iLl+OAgicNCnN0cnNwbGl0KHMsICfjgIJ877yMfOOAjXzvvIh877yJfOOAjCcpDQoNCmxpYnJhcnkoamllYmFSKQ0KbWl4c2VnIDwtIHdvcmtlcigpDQpzZWdtZW50KHMsIG1peHNlZykNCg0KDQoNCmBgYA0KIyMgQ2FsY3VsYXRlIFRGLUlERg0KYGBge3J9DQphICAgPC1jKCJhIikNCmFiYiA8LWMoImEiLCAiYiIsICJiIikNCmFiYyA8LWMoImEiLCAiYiIsICJjIikNCg0KRCA8LWxpc3QoYSwgYWJiLCBhYmMpDQoNCnRmaWRmPC1mdW5jdGlvbih0LGQsIEQpew0KICB0ZjwtdGFibGUoZClbbmFtZXModGFibGUoZCkpPT10XS9zdW0odGFibGUoZCkpDQogIGlkZjwtbG9nKGxlbmd0aChEKS9zdW0oc2FwcGx5KEQsZnVuY3Rpb24oZSl0JWluJWUpKSkNCiAgdGYqaWRmDQp9DQoNCnRmaWRmKCdhJywgYSwgRCkNCnRmICA8LSAxLzENCmlkZiA8LSBsb2coMy8zKQ0KdGYgKiBpZGYNCg0KDQoNCnRmaWRmKCdhJywgYWJiLCBEKQ0KdGYgIDwtIDEvMw0KaWRmIDwtIGxvZygzLzMpDQp0ZiAqIGlkZg0KDQp0ZmlkZignYicsIGFiYiwgRCkNCnRmICA8LSAyLzMNCmlkZiA8LSBsb2coMy8yKQ0KdGYgKiBpZGYNCg0KDQp0ZmlkZignYicsIGFiYywgRCkNCnRmICA8LSAxLzMNCmlkZiA8LSBsb2coMy8yKQ0KdGYgKiBpZGYNCg0KDQp0ZmlkZignYycsIGFiYywgRCkNCnRmICA8LSAxLzMNCmlkZiA8LSBsb2coMy8xKQ0KdGYgKiBpZGYNCg0KYGBgDQoNCiMjIOipnumgu+WIhuaekCAo5paH5a2X6LOH5paZKQ0KYGBgDQphcnRpY2xlIDwtICfph5Hmm7LmrYznjovola3mlazpqLDvvIjogIHola3vvInpqZrlgrPlhajouqvnmbHou5/nmbzlhrfvvIzpgKPnq5npg73nhKHlipvvvIzljp/kvobmmK/mhJ/mn5PjgIxB5Z6L5rWB5oSf44CN77yM5LiN5b6X5LiN5Y+W5raI5LuK5pmaOOaZguWNiuWcqOW7uuWci+S4reWtuOagoeaFtueahOaOoeioqumAmuWRiuOAgueWvueXheeuoeWItue9suihqOekuu+8jOS7iuW5tOeahOa1geaEn+eWq+aDheWcqDEw5pyI5Lit6ZaL5aeL5Ye654++77yMMTHmnIjliJ3mm77pgZTliLAx5ZGoMzLkvovph43nl4fjgILkvYbnlLHmlrzku4rlubTmk7TlpKflhazosrvmtYHmhJ/nlqvoi5fnmoTmlr3miZPlsI3osaHvvIzlm6DmraQxMeaciOWIneS7peW+jOeWq+aDhea8uOe3qe+8jOaykuacieS4iuWNh++8jOWPr+iDveimgeWVj+iVreaVrOmosOacieaykuacieaJk+a1geaEn+eWq+iLl+OAgg0K55a+566h572y5Ymv572y6ZW36I6K5Lq656Wl6KGo56S677yM5LuK5bm0MTDmnIjotbfnmoTmtYHmhJ/lraPnlqvoi5fmlr3miZPvvIzmk7TlpKforpM1MOiHszY05q2y5oiQ5Lq65Y+KMTPoh7MxOOatsumdkuWwkeW5tOetie+8jOWdh+e0jeWFpeWFrOiyu+eWq+iLl+aWveaJk+Wwjeixoe+8jOaOpeeorua2teiTi+eOh+W+nuWFqOS6uuWPo+eahDEz77yF5aKe5YqgMjXvvIXvvIzogIzmtYHmhJ/nlqvmg4Xpm5bmj5Dml6nlnKgxMOaciOS4remWi+Wni+WHuuePvu+8jDEx5pyI5Yid5pu+6YGU5YiwMeWRqDMy5L6L6YeN55eH77yM5L2G5q2k5b6M5q+P5ZGo55qE6YeN55eH5Lq65pW46YCQ5ry45rib57ep77yM5rKS5YaN5LiK5Y2H44CC55u46LyD5pa85LuK5bm05bm05YidMeWRqOacgOmrmDMxMeS+i+mHjeeXh++8jOebruWJjeeWq+aDheaMgeW5s++8jOaykuacieWinua6q+OAgg0K55a+566h572y57Wx6KiI77yM5LuK5bm05YWs6LK75rWB5oSf55ar6IuX6IeqMTDmnIgx5pel6ZaL5omT6IezMTLmnIg45pel77yM5o6l56iu5pW45bey6LaF6YGONTcy6JCs5YqR77yM5pW06auU55ar6IuX5L2/55So546H6YC+OTUl44CC54K65L2/55ar6IuX5Zyo5rWB5oSf5rWB6KGM5a2j5L6G6Ieo5YmN55m85o+u5pyA5aSn5pWI55uK77yM55a+566h572y5bey5pa8MTLmnIgx5pel6LW35pO05aSn5YWs6LK75rWB5oSf55ar6IuX5o6l56iu5bCN6LGh6Iez5YWo5ZyL5rCR55y+77yM5L6d55uu5YmN55ar6IuX5L2/55So546H5Lyw6KiI77yM5pyA6L+RMeWIsDLlkajlhafpg6jliIbnuKPluILlsIfpmbjnuozlh7rnj77nlqvoi5fmiZPlroznmoTmg4XlvaLvvIzlkbznsbLlsJrmnKrmjqXnqK7nmoTmsJHnnL7miormj6HmqZ/mnIPlhJjpgJ/mjqXnqK7jgIINCuiOiuS6uuelpeaPkOmGku+8jOawkeecvuW5s+aZguaHieiQveWvpuWLpOa0l+aJi+WPiuazqOaEj+WRvOWQuOmBk+ihm+eUn++8jOmBv+WFjeWHuuWFpeS6uua9ruaTgeaToOOAgeepuuawo+S4jea1gemAmueahOWFrOWFseWgtOaJgO+8jOmYsuevhOa1geaEn+eXheavku+8m+WmguWHuuePvuWRvOWQuOWbsOmbo+OAgeaApeS/g+OAgeeZvOe0uu+8iOe8uuawp++8ieOAgeihgOeXsOaIlueXsOa2suiuiua/g+OAgeiDuOeXm+OAgeaEj+itmOaUueiuiuOAgeS9juihgOWjk+etiea1geaEn+WNsemaquW+teWFhuaHieWPiuaXqeWwsemGq++8jOW/heimgeaZguS+nemGq+W4q+aMh+ekuuimj+WJh+S9v+eUqOWFrOiyu+aKl+eXheavkuiXpeWKkeS4puWcqOWutuS8kemkiuOAgijpu4Pku7LkuJgv5Y+w5YyX5aCx5bCOKScNCmBgYA0KDQojIyDmloflrZfpm7INCmBgYA0KbGlicmFyeShqaWViYVIpDQptaXhzZWcgICAgICA8LSB3b3JrZXIoKQ0KYXJ0aWNsZS5zZWcgPC0gc2VnbWVudChhcnRpY2xlLCBtaXhzZWcpDQp0YiAgICAgICAgICA8LSB0YWJsZShhcnRpY2xlLnNlZykNCg0Kc29ydCh0YiwgZGVjcmVhc2luZyA9IFRSVUUpDQoNCiMgaW5zdGFsbC5wYWNrYWdlcygnd29yZGNsb3VkMicpDQpsaWJyYXJ5KHdvcmRjbG91ZDIpDQp0YjIgPC0gdGJbKG5jaGFyKG5hbWVzKHRiKSkgPj0gMikgJiAodGIgPj0gMikgJiBncmVwbCgnW1x1NGUwMC1cdTlmYTVdKycsIG5hbWVzKHRiKSldDQoNCndvcmRjbG91ZDIodGIyKQ0Kd29yZGNsb3VkMih0YjIsIHNoYXBlID0gJ3RyaWFuZ2xlJykNCmBgYA0KDQojIyDkvb/nlKh0beaooee1hA0KYGBge3J9DQppbnN0YWxsLnBhY2thZ2VzKCJ0bSIpDQpsaWJyYXJ5KHRtKQ0KYGBgDQojIyDoi7Hmloflu7rnq4voqZ7poLvnn6npmaMNCmBgYHtyfQ0KZTMgPC0nSGVsbG8sIEkgYW0gRGF2aWQuIEkgaGF2ZSB0YWtlbiBvdmVyIDEwMCBjb3Vyc2VzIH5+ficNCmUzLmNvcnB1cyA8LSBDb3JwdXMoVmVjdG9yU291cmNlKGUzKSkNCmUzLmR0bSAgICA8LSBEb2N1bWVudFRlcm1NYXRyaXgoZTMuY29ycHVzKQ0KaW5zcGVjdChlMy5kdG0pDQoNCmR0bSA8LSBEb2N1bWVudFRlcm1NYXRyaXgoZTMuY29ycHVzLCBjb250cm9sPWxpc3Qod29yZExlbmd0aHM9YygxLCAyMCkpKQ0KDQppbnNwZWN0KGR0bSkNCg0KI2luc3RhbGwucGFja2FnZXMoJ1Nub3diYWxsQycpDQpzdGVtRG9jdW1lbnQoYygnaW1hZ2UnLCAnaW1hZ2luZScsICdpbWFnaW5hdGlvbicpKQ0KDQoNCmRvYyA8LSB0bV9tYXAoZTMuY29ycHVzLCByZW1vdmVOdW1iZXJzKQ0KZG9jIDwtIHRtX21hcChkb2MsIHJlbW92ZVB1bmN0dWF0aW9uKQ0KZHRtIDwtIERvY3VtZW50VGVybU1hdHJpeChkb2MpDQppbnNwZWN0KGR0bSkNCg0KDQpyZW1vdmV0aWxkZSA8LSBjb250ZW50X3RyYW5zZm9ybWVyKA0KICAgICAgIGZ1bmN0aW9uKHgsIHBhdHRlcm4pe3JldHVybihnc3ViKCJ+IiwgIiIsIHgpKX0pDQpkb2MgPC0gdG1fbWFwKGUzLmNvcnB1cywgcmVtb3ZldGlsZGUpDQpkdG08LURvY3VtZW50VGVybU1hdHJpeChkb2MpDQppbnNwZWN0KGR0bSkNCg0KZTEgPC0gJ3RoaXMgaXMgYSBib29rJw0KZTIgPC0gJ3RoaXMgaXMgbXkgY2FyJw0KZS52ZWMgPC0gbGlzdChlMSxlMikNCmUuY29ycHVzIDwtIENvcnB1cyhWZWN0b3JTb3VyY2UoZS52ZWMpKQ0KZS5kdG0gICAgPC0gRG9jdW1lbnRUZXJtTWF0cml4KGUuY29ycHVzKQ0KaW5zcGVjdChlLmR0bSkNCg0KYGBgDQoNCmBgYA0KcyAgPC0gIuWkp+W3qOibi+ahiOWwjeW4guW6nOWQjOS7geS4i+WwgeWPo+S7pO+8n+afr1DlkKboqo0iDQpzMSA8LSAi5p+vUOW4guW6nOi/keS+humjveWPl+Wkp+W3qOibi+eIreitsCINCmBgYA0KDQpgYGB7cn0NCmxpYnJhcnkoamllYmFSKQ0KbWl4c2VnIDwtIHdvcmtlcigpDQpzLnZlYyAgPC0gIHNlZ21lbnQocywgbWl4c2VnKQ0KczEudmVjIDwtICBzZWdtZW50KHMxLCBtaXhzZWcpDQpzLmNvcnB1cyA8LSBDb3JwdXMoVmVjdG9yU291cmNlKGxpc3Qocy52ZWMsIHMxLnZlYykpKQ0Kcy5kdG0gICAgPC0gRG9jdW1lbnRUZXJtTWF0cml4KHMuY29ycHVzKQ0KaW5zcGVjdChzLmR0bSkNCg0KYGBgDQojIyDkuK3mlofoqZ7poLvnn6npmaMNCg0KYGBge3J9DQpzb3VyY2UoJ2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS95d2NoaXUvcnRpYmFtZS9tYXN0ZXIvTGliL0NOQ29ycHVzLlInKQ0Kcy52ZWMgIDwtc2VnbWVudChjb2RlPXMgLCBqaWViYXIgPW1peHNlZykNCnMxLnZlYyA8LXNlZ21lbnQoY29kZT1zMSAsIGppZWJhciA9bWl4c2VnKQ0Kcy5jb3JwdXM9Q05Db3JwdXMobGlzdChzLnZlYywgczEudmVjKSkNCmNvbnRyb2wubGlzdD1saXN0KHdvcmRMZW5ndGhzPWMoMSxJbmYpLHRva2VuaXplPXNwYWNlX3Rva2VuaXplcikNCnMuZHRtICA8LSBEb2N1bWVudFRlcm1NYXRyaXgocy5jb3JwdXMsIGNvbnRyb2w8LWNvbnRyb2wubGlzdCkNCmluc3BlY3Qocy5kdG0pDQpgYGANCg0KIyMg5LiL6LyJ5LiA5L6L5LiA5LyRDQpgYGB7cn0NCnNvdXJjZSgnaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3l3Y2hpdS9ydGliYW1lL21hc3Rlci9MaWIvQ05Db3JwdXMuUicpDQpkb3dubG9hZC5maWxlKCdodHRwczovL2dpdGh1Yi5jb20veXdjaGl1L3J0aWJhbWUvcmF3L21hc3Rlci9EYXRhL29uZWRheS5jc3YnLCAnb25lZGF5LmNzdicpDQoNCmxpYnJhcnkocmVhZHIpDQpvbmVkYXkgPC0gcmVhZF9jc3YoIm9uZWRheS5jc3YiKQ0KDQoNCiNzdHIob25lZGF5KQ0KDQpsaWJyYXJ5KGppZWJhUikNCm1peHNlZyA8LSB3b3JrZXIoKQ0KDQphcnRpY2xlLnNlZyA8LSBsYXBwbHkob25lZGF5JGNvbnRlbnQsIGZ1bmN0aW9uKGUpIHNlZ21lbnQoZSwgbWl4c2VnKSApDQoNCnMuY29ycHVzIDwtIENOQ29ycHVzKGFydGljbGUuc2VnKQ0KY29udHJvbC5saXN0PWxpc3Qod29yZExlbmd0aHM9YygyLEluZiksdG9rZW5pemU9c3BhY2VfdG9rZW5pemVyKQ0KZG9jICAgICAgIDwtIHRtX21hcChzLmNvcnB1cywgcmVtb3ZlTnVtYmVycykNCnMuZHRtICAgICA8LSBEb2N1bWVudFRlcm1NYXRyaXgoZG9jLCBjb250cm9sPC1jb250cm9sLmxpc3QpDQoNCg0KI3MuZHRtJGRpbW5hbWVzJFRlcm1zDQpmaW5kRnJlcVRlcm1zKHMuZHRtLCA1MCwxMDApDQpkaW0ocy5kdG0pDQoNCmR0bS5yZW1vdmUgPC0gcmVtb3ZlU3BhcnNlVGVybXMocy5kdG0sIDAuOTUpDQpkaW0oZHRtLnJlbW92ZSkNCiNkdG0ucmVtb3ZlJGRpbW5hbWVzJFRlcm1zDQpgYGANCg0KIyMgbGFwcGx5IGV4YW1wbGUNCmBgYHtyfQ0KYSA8LSBsaXN0KGMoMSwyLDMpLCBjKDMsNCw1KSkNCmxhcHBseShhLCBzdW0pDQpgYGANCg0K