Функция суммирования сравнивает одну за другой по порядку? - PullRequest
0 голосов
/ 26 сентября 2018

Извините, если это слишком просто, но мне было интересно, сравнивает ли функция суммы в R первое значение одного вектора с первым значением другого вектора, затем второе из первого ко второму изтретий и т. д., или он сравнивает первый элемент со всеми элементами во втором векторе и т. д.

Это то, что я пробовал: sum(databef$SD>dataaft$SD, na.rm=TRUE) Предполагается, что число раз, когда стандартотклонение SD базы данных databef превысило стандартное отклонение другой базы данных.Но я не понимаю, как производится сравнение.

Ответы [ 2 ]

0 голосов
/ 26 сентября 2018

Это не имеет ничего общего с sum.Это базовый вектор R.Когда вы передаете любой функции булеву фразу с векторами с обеих сторон, она обрабатывает ее как набор сравнений, строка за строкой, в порядке самих векторов.Результатом является вектор (такой же длины более длинного вектора) значений ИСТИНА или ЛОЖЬ, который затем можно суммировать (Т = 1, F = 0).

0 голосов
/ 26 сентября 2018

Да, он сравнивает строку за строкой.Вот пример:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...