R R.scripts !!!myIndexNICER3 *NICERのCHATフォーマットのデータの入っているフォルダー内で、 *各種言語指標とファイル名とエッセイのスコアを取り出して、「リスト」として出力する。 {{pre myIndexNICER3 <- function(){ result <- list() files <- list.files() k <- 0 for (i in files){ k <- k +1 Token <- 0 Type <- 0 NoS <- 0 TTR <- 0 GI <- 0 AWL <- 0 ASL <- 0 wttr <- 0 ttrsum <- 0 MATTR <- 0 lines.tmp <- scan(i, what="char", sep="\n", quiet = T) #Criterion score criterion.tmp <- grep("@Criterion", lines.tmp, value = T) Score <- gsub("@Criterion:\t", "", criterion.tmp) #----NICER data.tmp <- grep("\\*(JPN|NS)...:\t", lines.tmp, value=T) body.tmp <- gsub("\\*(JPN|NS)...:\t", "", data.tmp) body.tmp <- body.tmp[body.tmp != ""] #---- lines.lower <- tolower(body.tmp) words.tmp <- unlist(strsplit(lines.lower, "\\W+")) Token <- length(words.tmp) Type <- length(unique(words.tmp)) NoS <- length(lines.tmp) TTR <- Type/Token GI <- Type/sqrt(Token) AWL <- nchar(paste(words.tmp, collapse=""))/Token ASL <- Token/NoS words.tmp2 <- c(words.tmp, words.tmp) for (j in 1:Token){ mado <- words.tmp2[j:(99+j)] wttr <- length(unique(sort(mado)))/100 ttrsum <- ttrsum + wttr } MATTR <- ttrsum/Token #cat(i, Score, Token, Type, NoS, TTR, GI, MATTR, AWL, ASL, "\n", file=output.file, append=T) #cat(i, Score, Token, Type, NoS, TTR, GI, MATTR, AWL, ASL, "\n") #print(i, Score, Token, Type, NoS, TTR, GI, MATTR, AWL, ASL) result[[k]] <- list(i, Score, Token, Type, NoS, TTR, GI, MATTR, AWL, ASL) } return(result) } }}