Выбор пар чисел из кадра данных

У меня есть такой кадр данных:

row   col
1     1
1     50
1     55
2     75

и я хочу выбрать все значения строки и столбца, которые являются парными, чтобы я мог вставить их в функцию.

Я пытаюсь этот код:

library(rhdf5)

 for(row in df$row){

  for (col in df$col){

      apixel = h5read("C/path_to_a_file',, index=list(1, col, row))
      apixel= data.frame(apixel)
 }
}

Это вставляет все мои row а также col значения из моего df, как я хочу, но он делает каждую возможную комбинацию из них, я только хочу вставить соответствующую пару. Например, row 1 должен только когда-либо быть в паре с 1, 50 а также 55 как соответствующий colне 75,

Возможно, я мог бы попытаться сжать два столбца и затем вернуть связанные кортежи?

1 ответ

Решение

Первый шаг: напишите функцию так, чтобы она принимала пары аргументов (row, col):

read_pixels <- function(row, col) {
  require(rhdf5)
  apixel <- h5read("C/path_to_a_file',, index=list(1, col, row))
  apixel <- data.frame(apixel)

  # do something with apixel
}

Теперь вы можете передать каждую строку фрейма данных в вашу функцию. Существуют различные способы сделать это, вот уродливый, использующий apply:

apply(myDataFrame, 1, function(x) read_pixels(x[1], x[2])
Другие вопросы по тегам