[R] Factors and Alternatives
peter dalgaard
pdalgd at gmail.com
Wed May 10 00:23:04 CEST 2017
Inline...
> On 9 May 2017, at 12:12 , G.Maubach at weinwolf.de wrote:
>
> Hi All,
>
> I am using factors in a study for the social sciences.
>
> I discovered the following:
>
> -- cut --
>
> library(dplyr)
>
> test1 <- c(rep(1, 4), rep(0, 6))
> d_test1 <- data.frame(test)
>
> test2 <- factor(test1)
> d_test2 <- data.frame(test2)
>
> test3 <- factor(test1,
> levels = c(0, 1),
> labels = c("WITHOUT Contact", "WITH Contact"))
> d_test3 <- data.frame(test3)
>
> d_test1 %>% filter(test1 == 0) # works OK
> d_test2 %>% filter(test2 == 0) # works OK
> d_test3 %>% filter(test3 == 0) # does not work, why?
>
test3 does not have a level 0. You want
test3 == "WITHOUT Contact"
Notice that once test3 is created, the input levels are lost, and thus "test3 == 0" becomes meaningless.
-pd
> myf <- function(ds) {
> print(levels(ds$test3))
> print(labels(ds$test3))
> print(as.numeric(ds$test3))
> print(as.character(ds$test3))
> }
>
> # This showsthat it is not possible to access the original
> # values which were the basis to build the factor:
> myf(d_test3)
>
> -- cut --
>
> Why is it not possible to use a factor with labels for filtering with the
> original values?
> Is there a data structure that works like a factor but gives also access
> to the original values?
>
> Kind regards
>
> Georg
>
> ______________________________________________
> 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.
--
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Office: A 4.23
Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com
More information about the R-help
mailing list