Lea*_*dro 1 if-statement r switch-statement
在使用 QCA 包时,我们通常使用ifelse二分值替换数据集列。但我觉得不得不使用嵌套很丑陋ifelse在处理模糊集时s。
有没有办法改用 case 语句? switch仅用于控制流,不处理向量。
例如:
DDDfz $VIES <- ifelse (DDD $vies == "p", 1, 0)
Run Code Online (Sandbox Code Playgroud)
可以,但是
DDDfz $TIPO <- switch (DDD $tipo, "PD", 0, "PL", 0.5, "MP", 1)
Error in switch(DDD$tipo, "PD", 0, "PL", 0.5, "MP", 1) :
EXPR deve ser um vetor de comprimento 1
Run Code Online (Sandbox Code Playgroud)
switch未矢量化,不能在此处使用。R 为factor此类任务提供了数据类。
factor(c(0, 0.5, 1), levels = c(0, 0.5, 1),
labels = c("PD", "PL", "MP"))
#[1] PD PL MP
#Levels: PD PL MP
Run Code Online (Sandbox Code Playgroud)
ifelse在第一个示例中也不需要。你可以简单地做as.integer(DDD$vies == "p")。
PS:前面的空格$是奇怪的代码风格。