有了这种数据(见下文),我尝试基于mutate()的条件测试创建一个新列IRISCOM
。
COMMUNE|IRIS|NB
35360|353600101|45
35361|ZZZZZZ|72
我尝试了data=mutate(data, IRISCOM= ifelse(IRIS == "ZZZZZZZZZ", COMMUNE, IRIS))
它正确写入了COMMUNE,但是按预期编写1
代替IRIS代码。
我尝试了一些没有成功的实验。
答案 0 :(得分:1)
要解决factor
问题(请参阅上面的评论),我们可以执行以下操作
library(tidyverse)
data %>%
mutate_if(is.factor, as.character) %>%
mutate(IRISCOM = ifelse(IRIS == "ZZZZZZ", COMMUNE, IRIS))
# COMMUNE IRIS NB IRISCOM
#1 35360 353600101 45 353600101
#2 35361 ZZZZZZ 72 35361
data <- read.table(text =
"COMMUNE|IRIS|NB
35360|353600101|45
35361|ZZZZZZ|72", header = T, sep = "|")