Reputation: 2307
I have a list
lst1<-list(cxr.CSV = c("project", "Subject", "Site", "InstanceName",
"RecordPosition", "CXRDT", "CXRFIND", "CXRFNDSP", "CXRYN"), cy1.CSV = c("project",
"Subject", "Site", "InstanceName", "RecordPosition", "CYSHPYN",
"CYSHPDT", "CY1TMPT", "CYND", "CYNDSP", "CYDT", "CYTM"), cy2.CSV = c("project",
"Subject", "Site", "InstanceName", "RecordPosition", "CYSHPYN",
"CYSHPDT", "CY2TMPT", "CYND", "CYNDSP", "CYDT", "CYTM"), cy24.CSV = c("project",
"Subject", "Site", "InstanceName", "RecordPosition", "CYSHPYN",
"CYSHPDT", "CY1TMPT", "CYND", "CYNDSP", "CYDT", "CYTM"), cy3.CSV = c("project",
"Subject", "Site", "InstanceName", "RecordPosition", "CYSHPYN",
"CYSHPDT", "CY3TMPT", "CYND", "CYNDSP", "CYDT", "CYTM"), cy6.CSV = c("project",
"Subject", "Site", "InstanceName", "RecordPosition", "CYSHPYN",
"CYSHPDT", "CY1TMPT", "CYND", "CYNDSP", "CYDT", "CYTM"), dlt.CSV = c("project",
"Subject", "Site", "InstanceName", "RecordPosition", "DLTYN",
"DLTAE", "DLTSP"), dm.CSV = c("project", "Subject", "Site", "InstanceName",
"RecordPosition", "BRTHYR", "DMAGE", "SEX", "SEXSP", "FEMCBP",
"FEMCBPSP", "RACE", "RACESP", "ETHNIC"), dov.CSV = c("project",
"Subject", "Site", "InstanceName", "RecordPosition", "DOVDT",
"DOVAE", "DOVCM", "DOVCP"), dov_1.CSV = c("project", "Subject",
"Site", "InstanceName", "RecordPosition", "DOVDT"), ds.CSV = c("project",
"Subject", "Site", "InstanceName", "RecordPosition", "DSDT",
"DSREAS", "DSORTH", "DSWCSP"), ds_1.CSV = c("project", "Subject",
"Site", "InstanceName", "RecordPosition", "DSDT", "DSREAS", "DSWCSP",
"DSORTH"), dth.CSV = c("project", "Subject", "Site", "InstanceName",
"RecordPosition", "DTHFCDT", "DTHDT", "DTHDUR", "DTHREAS", "DTHROTH",
"DTHCOMM"), dv.CSV = c("project", "Subject", "Site", "InstanceName",
"RecordPosition", "DVYN", "DVVIS", "DVIDDAT", "DVSTDAT", "DVENDAT",
"DVCAT", "DVCATSP", "DVCATCD", "DVTERM", "REWFLAG", "REWCOMP",
"DVACN", "DVMETRPT", "DVCLSDAT", "DVCLS"), tegu.CSV = c("project",
"Subject", "Site", "InstanceName", "RecordPosition", "EGYN",
"EGDT", "EGNOU", "EGTM", "EGORRES", "EGHR", "EGPR", "EGQRS",
"EGQTINT", "ECGRR", "EGQTCFC", "EGQTCBC", "EGQTCNS", "EGQTCO",
"EGQTCOSP", "EGRSAB01", "EGRSAB02", "EGRSAB03", "EGRSAB04", "EGRSAB05",
"EGRSAB06", "EGRSAB07", "EGRSAB08", "EGRSAB09", "EGRSAB10", "EGRSAB11",
"EGRSAB12", "EGRSAB13", "EGABNCOM", "EGABNCS", "EGTMPT", "EGND"
), tegu_1.CSV = c("project", "Subject", "Site", "InstanceName",
"RecordPosition", "EGYN", "EGNOU", "EGND", "EGTMPT", "EGDT",
"EGTM", "EGORRES", "EGHR", "EGPR", "EGQRS", "EGQTINT", "ECGRR",
"EGQTCFC", "EGQTCBC", "EGQTCNS", "EGQTCO", "EGQTCOSP", "EGRSAB01",
"EGRSAB02", "EGRSAB03", "EGRSAB04", "EGRSAB05", "EGRSAB06", "EGRSAB07",
"EGRSAB08", "EGRSAB09", "EGRSAB10", "EGRSAB11", "EGRSAB12", "EGRSAB13",
"EGABNCOM", "EGABNCS"))
Is it possible to sort each col by A-Z. There is no relationship col by col. This is list is using cbind created. The code to build this list is
lst1 <- lapply(mget(ls(pattern = "*.CSV")), names)
mx <- max(lengths(lst1))
do.call(cbind, lapply(lst1, `length<-`, mx))
Could we directly sort the .CSV in the list, or we need to make changes while we build the list? And how?
Currently the list looks like
The final list will looks like this:
Thanks
Upvotes: 1
Views: 49
Reputation: 887691
We loop over the list
, sort
the elements first, then assign the length
to that of 'mx', and return the sorted NA appended 'x1'
lst1 <- lapply(lst1, function(x) {
x1 <- sort(x)
length(x1) <- mx
x1})
If we want to order the columns of the data based on the names, then
lst2 <- lapply(mget(ls(pattern = "*.CSV")), function(x) {
x[sort(names(x))]
})
Upvotes: 1