如果单个单元格值与R中的辅助列匹配,则指定单个单元格值

时间:2016-05-13 13:42:34

标签: r

我目前正在尝试将普通实践诊所的预约指定为GP和其他医疗保健提供者。我想为此创建一个新列并执行以下操作

  1. 如果上一栏说明了其GP预约,请将GP放入新栏目

  2. 如果上一栏说明其他HCP约会,请将Other HCP放入新栏目

  3. 如果前一列中有空白条目,请查看包含已知GP约会的第二个data.frame中的列表。如果它与该列中的任何条目匹配,请指定为GP

  4. 如果前一列中有空白条目,请查看包含已知其他HCP约会的第二个data.frame中的列表。如果它与该列中的任何条目匹配,请指定为Other HCP

  5. 我试着这样做。请注意,apptsdata.frame我要将GPother HCP放入,gp apptsohcp appts是约会列表这让我可以指定条目是否为空白

    appts$hcpdesignation <-NA
    
    appts$hcpdesignation [appts$hcpcat == "GP"] <- "GP"
    
    appts$hcpdesignation [appts$hcpcat == "Other HCP"] <- "Other HCP"
    
    appts$hcpdesignation [appts$V11 == "" & appts$V10 == gpappts$apptype] <- "GP"
    
    appts$hcpdesignation [appts$V11 == "" & appts$V10 == ohcpappts$apptype] <- "Other HCP"
    

    我想错误的部分是appts$V10 == ohcpappts$apptype,但我不知道怎么说&#34;如果此单个条目与此列中的任何条目匹配&# 34;

1 个答案:

答案 0 :(得分:0)

1:我认为您正在寻找%in%运营商。

2:我不确定您为什么要在前两个测试中测试列hcpcat,然后在后两个测试中测试V11。您的逐步指示说测试所有4个测试的“上一列”。我认为这是一个错误。

## generate data
set.seed(2L);
div <- sample(c(T,F),10L,T);
N <- 20L;
gpappts <- data.frame(apptype=letters[1:10][div],stringsAsFactors=F);
ohcpappts <- data.frame(apptype=letters[1:10][!div],stringsAsFactors=F);
appts <- data.frame(hcpcat=sample(c('GP','Other HCP',''),N,T),V10=sample(letters[1:12],N,T),stringsAsFactors=F);
## solution
appts$hcpdesignation <- NA;
appts$hcpdesignation[appts$hcpcat=='GP'] <- 'GP';
appts$hcpdesignation[appts$hcpcat=='Other HCP'] <- 'Other HCP';
appts$hcpdesignation[appts$hcpcat=='' & appts$V10%in%gpappts$apptype] <- 'GP';
appts$hcpdesignation[appts$hcpcat=='' & appts$V10%in%ohcpappts$apptype] <- 'Other HCP';
## results
gpappts;
##   apptype
## 1       a
## 2       d
## 3       g
## 4       i
ohcpappts;
##   apptype
## 1       b
## 2       c
## 3       e
## 4       f
## 5       h
## 6       j
appts;
##       hcpcat V10 hcpdesignation
## 1  Other HCP   a      Other HCP
## 2         GP   b             GP
## 3              j      Other HCP
## 4         GP   k             GP
## 5  Other HCP   g      Other HCP
## 6              h      Other HCP
## 7              k           <NA>
## 8         GP   d             GP
## 9  Other HCP   i      Other HCP
## 10        GP   b             GP
## 11 Other HCP   l      Other HCP
## 12 Other HCP   d      Other HCP
## 13             b      Other HCP
## 14        GP   b             GP
## 15 Other HCP   l      Other HCP
## 16 Other HCP   j      Other HCP
## 17        GP   l             GP
## 18 Other HCP   e      Other HCP
## 19             g             GP
## 20        GP   j             GP