Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.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中加引号,如何在函数中调用该参数_R - Fatal编程技术网

如果函数参数需要在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