这个ifelse声明有什么问题。
df <- data.frame(var1=c('ABC','CAB', 'AB'))
dplyr::mutate(df, var2=ifelse(grepl('^AB',var1), 'AB-starter', var1))
给予
var1 var2
1 ABC AB-starter
2 CAB 3
3 AB AB-starter
我想(使用mutate和ifelse语句)var2的第二个元素中var1的值(即'var1'不以“AB”开头):
var1 var2
1 ABC AB-starter
2 CAB CAB
3 AB AB-starter
答案 0 :(得分:5)
As&#39; var1&#39;是factor
,它会被强制转换为ifelse
内的整数值。我们可以通过as.character
mutate(df, var2=ifelse(grepl('^AB',var1), 'AB-starter', as.character(var1)))
或在创建data.frame
时,请使用stringsAsFactors=FALSE