运算符 OR 是否对其后面的参数的位置敏感
Is the operator OR sensitive to the position of the argument that follows it
我想编写相当简洁、更具可读性的 R 代码。
我每次都尝试去排队以避免代码太长。我注意到我有不同的结果,具体取决于我是否在 grepl
中的 OR 运算符之后转到该行。这让我很烦
例如使用此代码。我有:
sigaps$Oncologie<-ifelse(
grepl("Radioth[ée]rapie|Chimioth[ée]rapie|Radiochimioth[ée]rapie|Cancer|Tumeur|Tumoral",
sigaps$Titre.de.l.étude,
ignore.case=TRUE),1,0)
table(sigaps$Oncologie)
0 1
377 157
但是当我将 Tumoral 移到下一行时,我得到了不同的结果。我不明白什么不
作品:
sigaps$Oncologie<-ifelse(
grepl("Radioth[ée]rapie|Chimioth[ée]rapie|Radiochimioth[ée]rapie|Cancer|Tumeur|
Tumoral",
sigaps$Titre.de.l.étude,
ignore.case=TRUE),1,0)
table(sigaps$Oncologie)
0 1
380 154
我一直这样做。但是我想知道,如果我不能用两种我发现相同的不同编码方式得到相同的结果,我是不是多年来一直在犯编码错误?
之所以会出现差异,是因为您打破了这一行,并通过将其拆分到下一行并缩进来在字符串中添加了空格。通过 a) 不这样做或 b) 使用 paste(..., sep="|")
创建字符串来修复它
grepl(paste("Radioth[ée]rapie", "Chimioth[ée]rapie",
"Radiochimioth[ée]rapie", "Cancer",
"Tumeur", "Tumoral", sep="|"),
sigaps$Titre.de.l.étude, ignore.case=TRUE)
我想编写相当简洁、更具可读性的 R 代码。
我每次都尝试去排队以避免代码太长。我注意到我有不同的结果,具体取决于我是否在 grepl
中的 OR 运算符之后转到该行。这让我很烦
例如使用此代码。我有:
sigaps$Oncologie<-ifelse(
grepl("Radioth[ée]rapie|Chimioth[ée]rapie|Radiochimioth[ée]rapie|Cancer|Tumeur|Tumoral",
sigaps$Titre.de.l.étude,
ignore.case=TRUE),1,0)
table(sigaps$Oncologie)
0 1
377 157
但是当我将 Tumoral 移到下一行时,我得到了不同的结果。我不明白什么不 作品:
sigaps$Oncologie<-ifelse(
grepl("Radioth[ée]rapie|Chimioth[ée]rapie|Radiochimioth[ée]rapie|Cancer|Tumeur|
Tumoral",
sigaps$Titre.de.l.étude,
ignore.case=TRUE),1,0)
table(sigaps$Oncologie)
0 1
380 154
我一直这样做。但是我想知道,如果我不能用两种我发现相同的不同编码方式得到相同的结果,我是不是多年来一直在犯编码错误?
之所以会出现差异,是因为您打破了这一行,并通过将其拆分到下一行并缩进来在字符串中添加了空格。通过 a) 不这样做或 b) 使用 paste(..., sep="|")
grepl(paste("Radioth[ée]rapie", "Chimioth[ée]rapie",
"Radiochimioth[ée]rapie", "Cancer",
"Tumeur", "Tumoral", sep="|"),
sigaps$Titre.de.l.étude, ignore.case=TRUE)