Как я могу прочитать информацию из текстовых файлов?
У меня есть сотни текстовых файлов со следующей информацией в каждом файле:
*****Auto-Corelation Results******
1 .09 -.19 .18 non-Significant
*****STATISTICS FOR MANN-KENDELL TEST******
S= 609
VAR(S)= 162409.70
Z= 1.51
Random : No trend at 95%
*****SENs STATISTICS ******
SEN SLOPE = .24
Теперь я хочу прочитать все эти файлы и «собрать»Статистика Sen из каждого файла (например,.24
) и скомпилировать в один файл вместе с соответствующими именами файлов. Я должен сделать это в R.
Я работал с файлами CSV, но не уверен, как использовать текстовые файлы.
Это код, который я использую сейчас:
require(gtools)
GG <- grep("*.txt", list.files(), value = TRUE)
GG<-mixedsort(GG)
S <- sapply(seq(GG), function(i){
X <- readLines(GG[i])
grep("SEN SLOPE", X, value = TRUE)
})
spl <- unlist(strsplit(S, ".*[^.0-9]"))
SenStat <- as.numeric(spl[nzchar(spl)])
SenStat<-data.frame( SenStat,file = GG)
write.table(SenStat, "sen.csv",sep = ", ",row.names = FALSE)
Текущий код не может правильно прочитать все значения и выдает эту ошибку:
Warning message:
NAs introduced by coercion
Также я не получаю имена файлов другого столбца вывода. Пожалуйста помоги!
Диагноз 1Код также читает знак =. Это вывод print (spl)
[1] "" "5.55" "" "-.18" "" "3.08" "" "3.05" "" "1.19" "" "-.32"
[13] "" ".22" "" "-.22" "" ".65" "" "1.64" "" "2.68" "" ".10"
[25] "" ".42" "" "-.44" "" ".49" "" "1.44" "" "=-1.07" "" ".38"
[37] "" ".14" "" "=-2.33" "" "4.76" "" ".45" "" ".02" "" "-.11"
[49] "" "=-2.64" "" "-.63" "" "=-3.44" "" "2.77" "" "2.35" "" "6.29"
[61] "" "1.20" "" "=-1.80" "" "-.63" "" "5.83" "" "6.33" "" "5.42"
[73] "" ".72" "" "-.57" "" "3.52" "" "=-2.44" "" "3.92" "" "1.99"
[85] "" ".77" "" "3.01"
Диагноз 2Нашел проблему я думаю. Отрицательный знак немного сложнее. В некоторых файлах это
SEN SLOPE =-1.07
SEN SLOPE = -.11
Из-за пробела после = я получаю NA для первого, но код читает второй. Как я могу изменить регулярное выражение, чтобы это исправить? Спасибо!