Как R определяет, является ли переменная датумом или вектором в одном выражении? - PullRequest
0 голосов
/ 16 апреля 2019

Я делаю онлайн-курс по данным R (dataquest). В нем меня просят выполнить функции над кадром о чемпионате мира по футболу 2014 года. Каждый ряд - это индивидуальная игра. Меня просят создать функцию, которая учитывает количество голов, забитых в каждом матче, и возвращает вектор, в котором каждый элемент представляет собой процент от общего количества голов, забитых в соревновании. Код (и заверенный правильный ответ ниже)

goals_percen <- function(x){
    x/sum(x)*100
}

home_goals_percentage <- goals_percen(scores$home_goals)
away_goals_percentage <- goals_percen(scores$away_goals)

В Python я должен был бы написать что-то вроде

def goals_percen(series):
    total = sum(series)
    result = []
    for i in series:
        result.append(i/total)

Или некоторый эквивалентный код с использованием панды .apply()

Мой вопрос: как интерпретатор анализирует выражение x/sum(x)? Чтобы функция работала, она должна обрабатывать первые x как отдельный элемент данных (или наблюдение), а x в sum(x) как весь вектор.

...