Я делаю онлайн-курс по данным 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)
как весь вектор.