Да, он сравнивает строку за строкой.Вот пример:
set.seed(123)
databef <- data.frame(SD = sample(1:100, 50, replace = TRUE))
dataaft <- data.frame(SD = sample(1:100, 50, replace = TRUE))
sum(databef$SD > dataaft$SD, na.rm = TRUE)
[1] 30 # this means 30 SD values in databef are greater than SD values in dataaft (row by row)
# A more intuitive way to do it would be:
table(databef$SD > dataaft$SD)
FALSE TRUE
20 30
Внимание! Имейте в виду, что, если базы данных и датафт не имеют одинаковую длину, произойдет переработка!
databef <- data.frame(SD = sample(1:100, 50, replace = TRUE))
dataaft <- data.frame(SD = sample(1:100, 30, replace = TRUE)) # 30 obs instead of 50
sum(databef$SD > dataaft$SD, na.rm = TRUE)
[1] 23 # works but you got a warning message
Warning message:
In databef$SD > dataaft$SD :
longer object length is not a multiple of shorter object length
# or
table(databef$SD > dataaft$SD)
FALSE TRUE
27 23
Warning message:
In databef$SD > dataaft$SD :
longer object length is not a multiple of shorter object length