С точки зрения вашего вопроса, у меня возникли проблемы с представлением сценария, в котором вы оцениваете TRUE == "TRUE"
, vs "TRUE" == TRUE
. Например; Возьмем функцию оболочки, мы можем запустить все сценарии для переменных и перебирать их с помощью тестов для as.logical, is.logical, x == TRUE, x == FALSE, x != TRUE
и т.д ...
Что наша функция тестирования будет сделать, это вход и возвращать только сценарии, которые оценивают в TRUE
с точки зрения логический тест в функции R.
f <-function(var){
do_fun <- list(
`%s == TRUE` = function(x)x==TRUE,
`%s == FALSE` = function(x)x == FALSE,
`as.logical(%s)` = function(x)as.logical(x),
`is.logical(%s)` = function(x)is.logical(x))
a <- sapply(names(do_fun), function(i){
do.call(do_fun[[i]],list(var))
})
set_name <- sprintf(names(a),var)
a <- as.list(a)
names(a) <- set_name
a[sapply(a,`[`,1)]
}
Тестирование на TRUE
# from base test to show
> is.logical(TRUE)
[1] TRUE
Теперь с нашим тестирования весело
> f(TRUE)
$`TRUE == TRUE`
[1] TRUE
$`as.logical(TRUE)`
[1] TRUE
$`is.logical(TRUE)`
[1] TRUE
В строках вместо зарезервированных символов
> f("true")
$`as.logical("true")`
[1] TRUE
> f("TRUE")
$`"TRUE" == TRUE`
[1] TRUE
$`as.logical("TRUE")`
[1] TRUE
На числовых значений выходной логики аль основан на оценке ввода, а не класс
> f(10.1)
$`as.logical(10.1)`
[1] TRUE
> f(10.1 > 1)
$`TRUE == TRUE`
[1] TRUE
$`as.logical(TRUE)`
[1] TRUE
$`is.logical(TRUE)`
[1] TRUE
или
> f(1+1)
$`as.logical(2)`
[1] TRUE
'ИСТИНА == Т # [1] TRUE, «T» может быть любым. Кстати, лучше TRUE вместо сокращенного T, так как это может привести к некоторым проблемам. – akrun
Комментируя здесь, чтобы он также попал в @akrun .. он мог бы помочь лучше. Вот что-то я связал, но я не в состоянии интерпретировать вывод: 'trace (" == "); «TRUE» == T'> Хотя кажется, что моя интерпретация документации была правильной, было бы полезно понять ее. –
Может быть, вне темы, но есть функция 'isTRUE', которая будет использоваться в тех случаях, когда ответ должен быть только ИСТИНА, и только тогда, когда он идентичен TRUE, что-либо еще приводит к FALSE (даже векторам TRUE). –