Description Usage Arguments Details Value Author(s) See Also Examples
grep
for YMD (year, month, day) in
col.names
. Return a named list of integer
vectors of length 3 for each triple found.
1 |
col.names |
either a character vector in which to search for names matching
|
YMD |
a character vector of patterns to use in |
The data sets from the
Correlates
of War project include dates coded in triples of columns with
names like c("StartMonth1", "StartDay1", "StartYear1", "EndMonth1",
..., "EndYear2"). This function will find all relevent date
triples in a character vector of column names and return a list
of integer vectors of length 3 with names like "Start1", "End1",
..., "End2" giving the positions in col.names
of the
desired date components.
Algorithm:
1. if(!is.null(colnames(YMD)))YMD <- colnames(YMD)
2. ymd
<- grep
for YMD (Year, Month, Day)
in col.names
.
3. groupNames
<- sub
pattern
with
” in ymd
4. Throw a warning
for any groupNames
character string that does not appear with all three of Year,
Month, and Day.
5. Return a list of integer vectors of length 3 for each triple found.
Returns a named list of integer vectors of length 3 identifying
the positions in col.names
of the desired date components.
Spencer Graves
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | ##
## 1. character vector
##
colNames <- c('war', 'StartMonth1', 'StartDay1', 'StartYear1',
'EndMonth1', 'EndMonth2', 'EndDay2', 'EndYear2', 'Initiator')
colNums <- dateCols(colNames)
# Should issue a warning:
# Warning message:
# In dateCols(colNames) :
# number of matches for Year = 2 != number of matches for Month = 3
# check
colN <- list(Start1=c(Year=4, Month=2, Day=3),
End2=c(Year=8, Month=6, Day=7) )
all.equal(colNums, colN)
##
## 2. array
##
A <- matrix(ncol=length(colNames),
dimnames=list(NULL, colNames))
Anums <- dateCols(A)
# check
all.equal(Anums, colN)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.