为了根据另一个变量(class = factor)创建一个新变量,我做了一个ifelse
循环。
数据:
eu <- data.frame(structure(c(1L, 4L, 5L, 12L, 9L, 13L, 16L, 18L, 27L, 10L, 25L, 21L, 28L, 19L, 8L, 26L, 6L, 3L, 15L, 14L, 11L, 17L, 20L, 23L, 24L, 2L, 22L, 7L), .Label = c("Belgie", "Bulgarije", "Cyprus", "Denemarken", "Duitsland", "Estland", "Europese Unie", "Finland", "Frankrijk", "Griekenland", "Hongarije", "Ierland", "Italie", "Letland", "Litouwen", "Luxemburg", "Malta", "Nederland", "Oostenrijk", "Polen", "Portugal", "Roemenie", "Slovenie", "Slowakije", "Spanje", "Tsjechie", "Verenigd Koninkrijk", "Zweden"), class = "factor"))
names(eu) <- "land"
我的ifelse
循环:
eu$plicht <- ifelse(eu$land=="Belgie", "ja",
ifelse(eu$land=="Italie","ja",
ifelse(eu$land=="Cyprus","ja",
ifelse(eu$land=="Griekenland","ja",
ifelse(eu$land=="Luxemburg","ja",
ifelse(eu$land=="Spanje","ja","nee"))))))
但是,我想知道是否有更有效的方法。有什么建议吗?
答案 0 :(得分:2)
您可以执行以下操作:
eu$plicht <- ifelse(eu$land %in% c("Belgie", "Italie", "Cyprus", "Griekenland", "Luxemburg", "Spanje"),
"ja", "nee")