r - Can ls() have a pattern > 1? -


say have 10 data.frames contain dates in names 01-01-00 10-01-00 other letters , symbols added end in format ddmmyy

e.g. 010100/sgh/d_3and 020100/aff/d_1

if wanted create vector of above data.frame, there way select them without writing them out individually?

i tried creating vector of sequence of dates , putting in pattern = came error (code below):

dates <- seq(as.date("2000-01-01"),as.date("2000-01-02"),1) dates <- format(dates,"%d%m%y") ls(pattern=dates)  in grep(pattern, all.names, value = true) :   argument 'pattern' has length > 1 , first element used 

i'm assuming pattern can 1 value?

create pattern matches of date strings want. 1 way join strings | characters:

> dates <- seq(as.date("2000-01-01"),as.date("2000-01-10"),1) > dates  [1] "2000-01-01" "2000-01-02" "2000-01-03" "2000-01-04" "2000-01-05"  [6] "2000-01-06" "2000-01-07" "2000-01-08" "2000-01-09" "2000-01-10" > d2 = paste(dates,collapse="|") > d2 [1] "2000-01-01|2000-01-02|2000-01-03|2000-01-04|2000-01-05|2000-01-06|2000-01-07|2000-01-08|2000-01-09|2000-01-10" 

now have workspace various bits , pieces in:

> ls()  [1] "d"              "d010100foo"     "d010110bar"     "d2"              [5] "d2000-01-01bar" "d2000-01-10bar" "d2000-02-10foo" "dates"           [9] "dorig"          "j"              "p"              "x"              [13] "y"              "z"              

but if use pattern ones match dates:

> ls(pattern=d2) [1] "d2000-01-01bar" "d2000-01-10bar" 

this unwieldy if had lots of things match, that point can write simpler regexp match things - [0-9]{4}-[0-9]{2}-[0-9]{2} (untested) should match 4 digit, dash, 2 digit, dash, 2 digit sequence.

adjust pattern match date format. format have used not recommended: https://xkcd.com/1179/


Comments

Popular posts from this blog

sql - invalid in the select list because it is not contained in either an aggregate function -

Angularjs unit testing - ng-disabled not working when adding text to textarea -

How to start daemon on android by adb -