Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:如何使用if-else条件创建两个变量_R - Fatal编程技术网

R:如何使用if-else条件创建两个变量

R:如何使用if-else条件创建两个变量,r,R,假设数据集包含两个变量- Name Name2 Dr John Apollo Hsp AIIMS Hsp Dr Khan 现在,我想根据条件再创建两个变量,当名称以Dr开头时,将转到医师列,当名称不以Dr开头时,将转到设备列 输出: Name Name2 facility Physician Dr John Apollo Hsp. Apollo H

假设数据集包含两个变量-

Name              Name2
Dr John           Apollo Hsp
AIIMS Hsp      Dr Khan
现在,我想根据条件再创建两个变量,当名称以Dr开头时,将转到医师列,当名称不以Dr开头时,将转到设备列

输出:

Name              Name2           facility            Physician
Dr John           Apollo Hsp.   Apollo Hsp.   Dr John
AIIMS Hsp      Dr Khan.        AIIMS Hsp.    Dr Khan.

我们可以将
ifelse
grepl
一起使用:

df <- data.frame(Name=c("Dr John", "AIIMS Hsp"),
                 Name2=c("Apollo Hsp", "Dr Khan."), stringsAsFactors=FALSE)

df$facility  <- ifelse(grepl("^Dr", df$Name), df$Name2, df$Name)
df$Physician <- ifelse(grepl("^Dr", df$Name), df$Name, df$Name2)
df

       Name      Name2   facility Physician
1   Dr John Apollo Hsp Apollo Hsp   Dr John
2 AIIMS Hsp   Dr Khan.  AIIMS Hsp  Dr Khan.

df感谢Tim,是否可以使用if-else条件创建两个变量。因为我有很多情况,比如。。。。博士,医学博士etcI没有看到一个明显的方法来扩展你的逻辑。你可能想提出一个新问题。