Hello,

Try the following.

x <- c( "Budlamp-Woodcutter Complex - 15 to 60% slope (60/25/15)",
"Budlamp-Woodcutter Complex - 15 to 60% slope (60/25/15)",
"Terrarossa-Blacktail-Pyeatt Complex - 1 to 40% slope (40/35/15/10)",
"Terrarossa-Blacktail-Pyeatt Complex - 1 to 40% slope (40/35/15/10)" )

lapply(strsplit(x, " - "), function(.x){
    s1 <- .x[1]
    s2 <- gsub(" \\(.*\\)$", "", .x[2])
    s3 <- gsub("^.*(\\(.*\\)$)", "\\1", .x[2])
    c(s1, s2, s3)
})


If you want to have the output in the form of matrix or data.frame, change the above to:

xx <- lapply(...etc...)
mat <- do.call(rbind, xx)  # matrix
dat <- data.frame(mat)   # data.frame

Hope this helps,

Rui Barradas
Em 16-08-2012 19:41, Sapana Lohani escreveu:
Hi,


I have a table in which one column has the name of the objects as shown below.


Name

Budlamp-Woodcutter Complex - 15 to 60% slope (60/25/15)
Budlamp-Woodcutter Complex - 15 to 60% slope (60/25/15)
Terrarossa-Blacktail-Pyeatt Complex - 1 to 40% slope (40/35/15/10)
Terrarossa-Blacktail-Pyeatt Complex - 1 to 40% slope (40/35/15/10)

How can I split the single column into three columns like name 
(Budlamp-Woodcutter Complex), slope (15 to 60% slope) and percentage (60/25/15)

thanks

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org 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.

______________________________________________
R-help@r-project.org 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.

Reply via email to