Выбор пар чисел из кадра данных
У меня есть такой кадр данных:
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])