Ты почти там.
with(my.df, sum(my.df[A >= 1 & A < 3, "B"]))
РЕДАКТИРОВАТЬ
Чейз попросил меня объяснить код под рукой.При чтении R-кода лучше читать изнутри наружу.Здесь мы идем.
my.df
- это data.frame (пример таблицы Excel) со столбцами A
и B
.Квадратные скобки []
используются для подстановки всего из этого объекта следующим образом: [rows, columns]
.Например, [1, ]
вернет всю первую строку, и если вы добавите номер столбца (или имя столбца), вы получите значение в первой строке этого столбца (например, [1, 2]
, где вы получите значение в первой строке).второй колонки).Теперь мы поместим строки в my.df
с A >= 1 & A < 3
.Мы говорим здесь о том, что мы хотим видеть те строки, значения которых в A
больше или равны 1 и меньше 3. Это даст нам все строки, которые удовлетворяют этому критерию.Если мы добавим , "B"
, это означает, что мы хотим выбрать столбец B
.Поскольку мы уже поднастроили результат, чтобы он содержал только строки, соответствующие вышеуказанному критерию, введя имя столбца B
, мы получим значения только в столбце.Получив эти значения из столбца B
, вы суммируете их, используя sum()
.Использование функции with
облегчает нашу жизнь.Если бы мы не использовали это, мы были бы вынуждены вызывать столбцы по их полному имени my.df$A
и my.df$B
.