Jump to content

Text processing/1: Difference between revisions

→‎{{header|J}}: give Dates to findLongestRuns as left arg
(→‎Common utilities: formatting)
(→‎{{header|J}}: give Dates to findLongestRuns as left arg)
Line 526:
NB. Find longest run(s) of successive invalid measurements and return
NB. length and date of last measurement(s) in run(s)
NB. Takes matrix of flags as right argument, list of date literals as left argument
findLongestRuns=: 3dyad : 0define
badflags=. , 0 >: y
 
Line 533:
getrunlengths=. [: #(;.1) 0 , }. *. }:
getidxmax=. >:@I.@e. >./
getdateidxgetlineidx=. (24 <.@%~ +/)@{.~ getidxmax
 
maxrun=. >./ getrunlengths badflags
enddateslineidx=. (Dates {~ getdateidxgetlineidx@getrunlengths) badflags
maxrun;enddateslineidx { x
)
 
Line 570:
flags=: _99 ". >(2 + +: i.24){"1 dat
DailySumry=: vals summarize@filter"1 flags
MaxRuns=: Dates findLongestRuns flags
 
(_4{.Dates) formatDailySumry _4{. DailySumry
Line 607:
<lang j>
'Dates DailySumry Flags'=: processBlock fread jpath '~temp/readings.txt'
MaxRuns=: Dates findLongestRuns Flags
 
(_4{.Dates) formatDailySumry _4{. DailySumry
Line 638:
strt=. newstrt
end.
MaxRuns=. Dates findLongestRuns Flags
smoutput (_4{. Dates) formatDailySumry _4{. DailySumry
smoutput ''
Line 676:
processLine=: monad define
'dates dat'=. parseLine y
Dates=: Dates,dates NB. append to global
'vals flags'=. |: _2 ]\ dat
Flags=: Flags,flags
sumry=. vals summarize@filter flags
Dates=: Dates,dates NB. append to global
DailySumry=: DailySumry,sumry
Flags=: Flags,flags
)
 
Line 693:
processLine fapplylines y
 
MaxRuns=. Dates findLongestRuns Flags
NB. Format output
smoutput (_4{. Dates) formatDailySumry _4{. DailySumry
892

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.