[R] apply --> data.frame
Sam Steingold
sds at gnu.org
Fri Aug 31 18:11:26 CEST 2012
> * David Winsemius <qjvafrzvhf at pbzpnfg.arg> [2012-08-30 10:14:34 -0700]:
>
>> str( as.data.frame( do.call(rbind, strsplit(c("a,1","b,2","c,3"),
> ",") ) , stringsAsFactors=FALSE) )
> 'data.frame': 3 obs. of 2 variables:
> $ V1: chr "a" "b" "c"
> $ V2: chr "1" "2" "3"
do.call/rbind appeared to be TRT. I tried it and got a data frame with
list columns (instead of vectors);
as.data.frame(do.call(rbind,lapply(list.files(...), function (name) {
....
c(name,list(num1,num2,num3), # num* come from some calculations above
strsplit(sub("[^-]*(train|test)[^-]*(-(S)?pca([0-9]*))?-s([0-9]*)c([0-9.]*)\\.score",
"\\1,\\3,\\4,\\5,\\6",name),",")[[1]])
})), stringsAsFactors = FALSE)
'data.frame': 2 obs. of 8 variables:
$ file :List of 2
..$ : chr "zzz_test_0531_0630-Spca181-s0c10.score"
..$ : chr "zzz_train_0531_0630-Spca181-s0c10.score"
$ lift.quality:List of 2
..$ : num 0.59
..$ : num 0.621
$ proficiency :List of 2
..$ : num 0.0472
..$ : num 0.0472
$ set :List of 2
..$ : chr "test"
..$ : chr "train"
$ scale :List of 2
..$ : chr "S"
..$ : chr "S"
$ pca :List of 2
..$ : chr "181"
..$ : chr "181"
$ s :List of 2
..$ : chr "0"
..$ : chr "0"
$ c :List of 2
..$ : chr "10"
..$ : chr "10"
I guess the easiest way is to replace c(...list()...) with c(...) but
that would mean converting num1,num2,num3 to string and back which I
want to avoid for aesthetic reasons. Any better suggestions?
thanks a lot!
--
Sam Steingold (http://sds.podval.org/) on Ubuntu 12.04 (precise) X 11.0.11103000
http://www.childpsy.net/ http://jihadwatch.org http://thereligionofpeace.com
http://palestinefacts.org http://ffii.org http://pmw.org.il
I don't have an attitude problem. You have a perception problem.
More information about the R-help
mailing list