[R] training svm
Charilaos Skiadas
cskiadas at gmail.com
Fri Mar 7 13:41:26 CET 2008
On Mar 7, 2008, at 2:17 AM, Oldrich Kruza wrote:
> Hello Soumyadeep,
>
> if you store the data in a tabular file, then I suggest using standard
> text-editing tools like cut (say your file is called data.csv, fields
> are separated with commas and you want to get rid of the third and
> sixth column):
>
> $ cut --complement --delimiter="," --fields=3,6 < data.csv >
> data_cut.csv
>
> If you're not in an Unix environment but have perl, then you may use a
> script like:
>
> open SRC, "data.csv" or die("couldn't open source");
> open DST, ">data_cut.csv" or die("couldn't open destination");
> while (<SRC>) {
> chomp;
> @fields = split /,/; #substitute the comma for the
> delimiter you use
> splice @fields, 2, 1; #get rid of third column (they're
> zero-based, thus 2 instead of 3)
> splice @fields, 5, 1; #get rid of sixth column
> print DST join(",", @fields), "\n";
> }
>
> If you need to do the selection within R, then you can do it by
> indexing the data structure. Suppose you have the data in a data.frame
> called data. Then:
>
>> data <- data[,-6]
>> data <- data[,-3]
>
> might do the trick (but since I'm not much of an R hacker, this is
> without guarantee). I think it might be better however to do the
> preprocessing before the data get into R because then you avoid
> loading the columns to discard into memory.
I am guessing that the data is already in R, so it should be easier
to do it in R, especially if he doesn't know which columns are the
ones with all identical values. For instance, suppose the data set is
called x. Then the following would return TRUE for the columns that
have all values the same:
allsame <- sapply(x,function(y) length(table(y))==1)
and then the following will take them out
newdata <- x[,!allsame]
> Hope this helps
> ~ Oldrich
Haris Skiadas
Department of Mathematics and Computer Science
Hanover College
More information about the R-help
mailing list