如果函数参数需要在R中加引号,如何在函数中调用该参数
假设我有一个函数如果函数参数需要在R中加引号,如何在函数中调用该参数,r,R,假设我有一个函数 f1<- function(a,b){ output<-ifelse(a=='b','yes',NA) return(output) } 这将返回向量 1,2,3,NA,NA,NA 我只是在告诉ifelse语句将我的“条件”一词用引号括起来时遇到了一个问题。您的问题在注释中得到了回答,但更好的做法是习惯于使用逻辑,即T或TRUE和F或FALSE。如果你有b=c(T,T,F),你不需要做ifelse(b==T,…),你只需要使用ifelse(b,…)。您还可以使用
f1<- function(a,b){
output<-ifelse(a=='b','yes',NA)
return(output)
}
这将返回向量
1,2,3,NA,NA,NA
我只是在告诉ifelse语句将我的“条件”一词用引号括起来时遇到了一个问题。您的问题在注释中得到了回答,但更好的做法是习惯于使用逻辑,即
T
或TRUE
和F
或FALSE
。如果你有b=c(T,T,F)
,你不需要做ifelse(b==T,…)
,你只需要使用ifelse(b,…)
。您还可以使用轻松地否定代码>
您的示例可以简化为:
a<-c(1,2,3,4,5,6)
b<-c('T','T','T','F','F','F')
good.b <- as.logical(b)
# Now some sample output
> good.b
[1] TRUE TRUE TRUE FALSE FALSE FALSE
> a[good.b]
[1] 1 2 3
> a[!good.b]
[1] 4 5 6
> a[!good.b] <- NA # This line does what your function does
> a
[1] 1 2 3 NA NA NA
a[!好的.b]
[1] 4 5 6
>a[!好的.b]a
[1] 1 2 3 NA NA NA
如果您想让函数检查a
是否等于b
的值,那么我认为您可以在ifelse
中写入a==b
?不清楚您在问什么here@beginneR-我知道。我只是问如何引用函数中引号内的函数调用之一。我不确定我是否理解,但是,也许类似的东西会有所帮助<代码>f1=函数(a,b)c(a,deparse(替换(b));f1(“a_character_参数”,而不是a_character_参数)
投票重新打开此问题,因为OP已添加足够的信息来解决此问题。
1,2,3,NA,NA,NA
a<-c(1,2,3,4,5,6)
b<-c('T','T','T','F','F','F')
good.b <- as.logical(b)
# Now some sample output
> good.b
[1] TRUE TRUE TRUE FALSE FALSE FALSE
> a[good.b]
[1] 1 2 3
> a[!good.b]
[1] 4 5 6
> a[!good.b] <- NA # This line does what your function does
> a
[1] 1 2 3 NA NA NA