создание новых столбцов Tibble на основе сопоставления плюс пользовательские данные

Если вы имеете в виду , вызываемый (или , называемый ), а не скомпилированный, ответ да. B вызывается каждый раз, когда A вызывается как A вызывает B.

2
задан MartijnVanAttekum 16 January 2019 в 22:22
поделиться

1 ответ

При этом используется lapply для применения функции к каждому элементу вашего вектора, затем связывается результат с исходным фреймом данных и добавляются имена столбцов.

# Given example
set.seed(1)
(tib <- tibble(num1 = sample(12), num2 = sample(12)))
addup <- function(x, y, z){x + y + z}
vec <- c(3,6,4)

# Add columns and bind to original data frame
foo <- cbind(tib, lapply(vec, function(x)addup(tib$num1, tib$num2, x)))

# Correct column names
colnames(foo)[(ncol(tib)+1):ncol(foo)] <- vec

# Print result
print(foo)

#    num1 num2  3  6  4
# 1     4    9 16 19 17
# 2     5    5 13 16 14
# 3     6    8 17 20 18
# 4     9   11 23 26 24
# 5     2    6 11 14 12
# 6     7    7 17 20 18
# 7    10    3 16 19 17
# 8    12    4 19 22 20
# 9     3   12 18 21 19
# 10    1    1  5  8  6
# 11   11    2 16 19 17
# 12    8   10 21 24 22
0
ответ дан Lyngbakr 16 January 2019 в 22:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: