[R] Replace a list of values in data frame

Henrique Dallazuanna wwwhsd at gmail.com
Fri Feb 29 15:26:19 CET 2008


Try this:

colorful$response <- factor(colorful$response)
levels(colorful$response)[levels(colorful$response) %in% ToBeReplaced]
<- Replacement

On 29/02/2008, Silvia Lipski <sillispiral at yahoo.com> wrote:
> Dear R-users,
>
>  I am sorry if I ask for something that has been asked
>  before, however, I still could not solve my little
>  problem by consulting the previous thread on this
>  topic:
>
>  I would like to replace several values in a data
>  frame, such as in:
>
>  colorful
>   subject response
>  1      me    black
>  2      me    brown
>  3     you      red
>  4      me    black
>  5     you    brown
>
>  read in with read.table()
>
>  I would like to replace both "black" and "brown" by
>  "dark".
>
>  What I have tried was:
>
>  ToBeReplaced=c("black","brown")
>  Replacement="dark"
>  test1<-replace(colorful,ToBeReplaced,Replacement)
>
>  which adds two columns:
>
>  test1
>   subject response black brown
>  1      me    black  dark  dark
>  2      me    brown  dark  dark
>  ....
>
>  Replacing one value at a time as in:
>  test2<-replace(colorful$response,colorful$response=="black","dark")
>
>  gives this  warning message:
>   In test$response :
>   $ operator is invalid for atomic vectors, returning
>  NULL
>
>  and returns all values for $response:
>  > test2
>  [1] black  brown  red    black  .....
>
>  I have tried many other things but nothing helps.
>  I would be very grateful for your help!!!
>
>  Thanks a lot,
>  Silvia
>
>  ______________________________________________
>  R-help at 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.
>


-- 
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O



More information about the R-help mailing list