Я пытаюсь создать алгоритм, который по сути является функцией этого фрейма данных.
Это код, который я использовал, но похоже, что он не работает.
Мне нужно, чтобы image_id был независимой переменной, чтобы при вводе 7 в функцию я возвращал 10 и 15. Если бы я ввел 8, я бы получил 11 и 13.
num = function(image_id, category_id, data = categories) {x->y}
Это фрейм данных, который я использую.
category_id image_id cat_to_img_last_update
1 15 15 NULL
2 11 11 NULL
3 13 13 NULL
4 10 10 NULL
5 35 35 NULL
6 78 78 NULL
7 112 112 NULL
8 61 61 NULL
9 86 86 NULL
10 101 101 NULL
11 61 61 NULL
12 86 86 NULL
Спасибо за ответ, надеюсь, мой обновленный пост понравился больше!





Вероятно, вам не нужна функция для этого, но если вы действительно хотите, вот как она будет выглядеть:
# Read in data
categories <-
data.frame(category_id = c(15,11,13,10,35,78,112,61,86,101,61,86),
image_id = c(7,8,8,7,9,9,10,10,11,11,12,12),
stringsAsFactors = FALSE)
num <- function(image_id, data = categories) {
data$category_id[data$image_id == image_id]
}
num(7) # 15 10
num(8) # 11 13
Большое вам спасибо за ваш ответ. Если бы я хотел обойти конкатенацию чисел, есть ли способ сделать это просто с помощью имен переменных? Что-то похожее на это? категории <- data.frame (category_id = c (catigories $ image_id), image_id = c (catigories $ category_id), stringsAsFactors = FALSE) num <- function (image_id, data = category) {data $ category_id [data $ image_id == image_id]} число (7) # 15 10 число (8) # 11 13
категории_1 <- data.frame (category_id = c (категории $ category_id), image_id = c (категории $ image_id), stringsAsFactors = FALSE) num <- function (image_id, data = category) {data $ category_id [data $ image_id == image_id]} num (7) # 15 10 num (8) # 11 13 Только что исправил, спасибо!
df <- data.frame(
category_id = c(15, 11, 13, 10, 25, 78, 112, 61, 86, 101, 61, 86),
image_id = c(7, 8, 8, 7, 9, 9, 10, 10, 11, 11, 12, 12)
)
myfun <- function(num) { sort(df[df$image_id == num, "category_id"]) }
myfun(7)
myfun(8)
Добро пожаловать в StackExchange! Непонятно, о чем вы спрашиваете в своем вопросе. Также всегда лучше предоставить минимальный рабочий пример stackoverflow.com/help/mcve, а для вопросов о R использовать
dput()для предоставления вашего фрейма данных meta.stackexchange.com/questions/176460/….