[R] Qualitative Data??(String command)

John Fox jfox at mcmaster.ca
Fri Oct 27 23:18:32 CEST 2006


Dear Davia,

> -----Original Message-----
> From: r-help-bounces at stat.math.ethz.ch 
> [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Davia Cox
> Sent: Friday, October 27, 2006 3:37 PM
> To: r-help at stat.math.ethz.ch
> Subject: [R] Qualitative Data??(String command)
> 
> I am using the read.table function to load an Excel data set into R.
> It has a few variables with very long qualitative (free 
> response typically in sentences) response that I would like 
> to keep, but would like to limit the "length" of the response 
> that R shows. Is there some sort of string or column width 
> command I can include in the read.table function to limit the 
> length of words used in the variables that have long 
> responses?? I do know which variable names are the ones with 
> the qualitative responses. Will the Rcmdr program do this for 
> me? 

No. When you read an Excel file (or an ascii file) into R using the Rcmdr,
character data will be converted into factors.

> I know STATA has this function but I don't have it on my 
> computer to use.
>

If I understand you correctly, it's not hard to do what you want. The
following function takes a data frame and desired character length as
arguments and truncates both character variables and the levels of factors.
Note that you have to be a little careful with factors in that you could
truncate different levels to the same string, inadvertently combining them.

truncateValues <- function(Data, len=10){
    for (i in 1:ncol(Data)){
        var <- Data[[i]]
        if (is.factor(var)) {
            levels(var) <- sapply(levels(var), 
                function(x) substr(x, 1, min(nchar(x), len)))
            Data[[i]] <- var
            }
        else if (is.character(var)) {
            Data[[i]] <- sapply(var, function(x) substr(x, 1, min(nchar(x),
len)))
            }
        }
    Data
    }

I hope this helps,
 John

> Davia
> 
> 
> --
> Davia S. Cox
> "Image creates desire. You will what you imagine."
> ~J.G. Gallimore~
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.



More information about the R-help mailing list