如何在R中使用%in%symbol?
我发现%in%代表匹配运算符binary(在模型公式中:嵌套)。我的工作区中有两个表。第一个表包含如何在R中使用%in%symbol?,r,binary,match,R,Binary,Match,我发现%in%代表匹配运算符binary(在模型公式中:嵌套)。我的工作区中有两个表。第一个表包含 > str(GP.drugs) 'data.frame': 4158393 obs. of 9 variables: $ SHA : Factor w/ 10 levels "Q30","Q31","Q32",..: 1 1 1 1 1 1 1 1 1 1 ... $ PCT : Factor w/ 151 levels "5A3","5A4","5A5",..:
> str(GP.drugs)
'data.frame': 4158393 obs. of 9 variables:
$ SHA : Factor w/ 10 levels "Q30","Q31","Q32",..: 1 1 1 1 1 1 1 1 1 1 ...
$ PCT : Factor w/ 151 levels "5A3","5A4","5A5",..: 16 16 16 16 16 16 16 16 16 16 ...
$ PRACTICE: Factor w/ 10191 levels "A81001","A81002",..: 344 345 345 345 345 345 345 345 345 345 ...
$ BNF.CODE: Factor w/ 1731 levels "0101010C0","0101010E0",..: 878 4 9 11 17 22 25 26 27 28 ...
$ BNF.NAME: Factor w/ 1524 levels "Abacavir ",..: 317 289 294 1284 37 379 655 825 1115 824 ...
$ ITEMS : int 1 27 1 2 97 4 40 98 27 2 ...
$ NIC : num 1.89 74.94 3.2 7.35 439.83 ...
$ ACT.COST: num 1.77 69.92 2.98 6.84 408.43 ...
$ PERIOD : num 201109 201109 201109 201109 201109 ...
> str(problem.drugs)
'data.frame': 13 obs. of 2 variables:
$ Drug : Factor w/ 13 levels "Alogliptin","Glipizide",..: 1 2 3 9 10 11 12 13 4 7 ...
$ Category: Factor w/ 1 level "metformin": 1 1 1 1 1 1 1 1 1 1 ...
第二个表包含
> str(GP.drugs)
'data.frame': 4158393 obs. of 9 variables:
$ SHA : Factor w/ 10 levels "Q30","Q31","Q32",..: 1 1 1 1 1 1 1 1 1 1 ...
$ PCT : Factor w/ 151 levels "5A3","5A4","5A5",..: 16 16 16 16 16 16 16 16 16 16 ...
$ PRACTICE: Factor w/ 10191 levels "A81001","A81002",..: 344 345 345 345 345 345 345 345 345 345 ...
$ BNF.CODE: Factor w/ 1731 levels "0101010C0","0101010E0",..: 878 4 9 11 17 22 25 26 27 28 ...
$ BNF.NAME: Factor w/ 1524 levels "Abacavir ",..: 317 289 294 1284 37 379 655 825 1115 824 ...
$ ITEMS : int 1 27 1 2 97 4 40 98 27 2 ...
$ NIC : num 1.89 74.94 3.2 7.35 439.83 ...
$ ACT.COST: num 1.77 69.92 2.98 6.84 408.43 ...
$ PERIOD : num 201109 201109 201109 201109 201109 ...
> str(problem.drugs)
'data.frame': 13 obs. of 2 variables:
$ Drug : Factor w/ 13 levels "Alogliptin","Glipizide",..: 1 2 3 9 10 11 12 13 4 7 ...
$ Category: Factor w/ 1 level "metformin": 1 1 1 1 1 1 1 1 1 1 ...
我使用的代码和错误是
> t<-subset(GP.drugs,n %in% p)
> t
[1] SHA PCT PRACTICE BNF.CODE BNF.NAME ITEMS NIC ACT.COST PERIOD
<0 rows> (or 0-length row.names)
>t
[1] SHA PCT实践BNF.CODE BNF.NAME项目NIC法案成本期
(或长度为0的行名称)
更多错误
这会对表的列名产生影响还是会对两个表的列数产生影响 您的
BNF.NAME
列在GP.druges
数据框中似乎有额外的尾随空格:注意,它的第一个元素类似于“Abacavir”
。如果这适用于GP.drugs
中的所有药物,但不适用于problem.drugs
中的药物,则会阻止任何药物匹配
要解决此问题,您可以使用stringr
中的stru trim
函数,该函数用于修剪前导和尾随空格:
library(stringr)
n <- str_trim(GP.drugs$BNF.NAME)
# same thing you did before
p <- problem.drugs$Drug
t <- subset(GP.drugs, n %in% p)
库(stringr)
n试试看
你能给我们举个数据的例子吗?当您执行任何操作(n%in%p)
时会发生什么情况?您应该将代码复制/粘贴到问题中,而不是上载屏幕截图。您可以通过将每行缩进四个空格来格式化代码(快捷方式是选择它并单击{}
按钮,)@MhairiMcNeill,我得到了相同的答案,并且我已经更新了问题。@MhairiMcNeill,它现在为我提供了true。您是对的。我发现了错误,现在它工作得很好。感谢you@MhairiMcNeil,也谢谢你。哈,我什么也没做,不过还是接受了谢谢!仅供参考,在R 3.2.0或3.2.1中,trimws
功能被添加到base
包中,其作用与stru trim
相同。