繁体   English   中英

使用 dplyr 有条件地重命名变量

[英]conditionally rename variable by using dplyr

问题如下:

创建一个新变量,当房屋类型为 House 时,其值为 1,如果类型为 Penthouse,则为 2,如果类型为 Flat / Apartment 或 Studio,则为 3,否则为 0。 对新变量使用 table() 函数。

变量 House type 包含以下唯一值:“House”、“Flat/Apartment”、“new development”、“duplex”、“Penthouse”、“studio”、“bungalow”、“Mews”。

有人现在需要哪个 dplyr 函数来解决这个问题吗?

您可以使用case_when() ,然后使用count()

df %>%
  mutate(new_var = case_when(
    House=="House"~1,
    House=="Penthouse"~2,
    House %in% c("Flat/Apartment","Studio")~3,
    TRUE~0)) %>%
  count(new_var)

指定factorlevels可能会更容易

v1 <- with(df, as.integer(factor(House, levels = c("House", 
                "Penthouse", "Flat/Apartment", "Studio"))))
v1[is.na(v1)] <- 0
v1[v1 == 4] <- 3
table(v1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM