[R] simple question on data frames assignment

David Barron dnbarron at gmail.com
Thu Apr 7 13:52:22 CEST 2016


ifelse is vectorised, so just use that without the loop.

colordata$response <- ifelse(colordata$color == 'blue', 1, 0)

David

On 7 April 2016 at 12:41, Michael Artz <michaeleartz at gmail.com> wrote:

> Hi I'm not sure how to ask this, but its a very easy question to answer for
> an R person.
>
> What is an easy way to check for a column value and then assigne a new
> column a value based on that old column value?
>
> For example, Im doing
>  colordata <- data.frame(id = c(1,2,3,4,5), color = c("blue", "red",
> "green", "blue", "orange"))
>  for (i in 1:nrow(colordata)){
>    colordata$response[i] <- ifelse(colordata[i,"color"] == "blue", 1, 0)
>  }
>
> which works,  but I don't want to use the for loop I want to "vecotrize"
> this.  How would this be implemented?
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list