Сравнить значения столбца с другим столбцом

Когда вы говорите, что вы пытались использовать iText, я предполагаю, что вы использовали пример ExtractImages в качестве отправной точки для вашего кода. В этом примере используется вспомогательный класс MyImageRenderListener , который реализует интерфейс RenderListener.

В этом вспомогательном классе метод renderImage() реализован следующим образом:

public void renderImage(ImageRenderInfo renderInfo) {
    try {
        String filename;
        FileOutputStream os;
        PdfImageObject image = renderInfo.getImage();
        if (image == null) return;
        filename = String.format(path, renderInfo.getRef().getNumber(), image.getFileType());
        os = new FileOutputStream(filename);
        os.write(image.getImageAsBytes());
        os.flush();
        os.close();
    } catch (IOException e) {
        System.out.println(e.getMessage());
    }
}

Он использует объект ImageRenderInfo для получения экземпляра PdfImageObject и создает файл изображения с использованием этого объекта.

Если вы проверите класс ImageRenderInfo , вы обнаружите, что вы также можете попросить другую информацию об изображении. Что вам нужно, это метод getImageCTM() . Этот метод возвращает объект Matrix . Эта матрица может быть интерпретирована с использованием обычной алгебры средней школы. Значения I31 и I32 дают вам положение X и Y. В большинстве случаев I11 и I22 дадут вам ширину и высоту (если изображение не повернуто).

Если изображение повернуто, вам придется проконсультироваться с учебниками средней школы , в частности те, которые обсуждают аналитическую геометрию.

0
задан Cettt 5 March 2019 в 10:58
поделиться

1 ответ

Привет, вы можете использовать функцию mutate_at следующим образом:

library(tidyverse)

data %>% as_tibble %>% 
  mutate_at(vars(paste0("ht_", 1:4)), ~if_else(.x > ht_5, ht_5, .x))

В этом случае вы также можете использовать pmin вместо if_else, что должно быть быстрее.

data %>% as_tibble %>% 
      mutate_at(vars(paste0("ht_", 1:4)), ~pmin(.x, ht_5))

Чтобы увидеть, сколько значений больше ht_5, вы можете использовать функцию summarise_at:

data %>% as_tibble %>% 
  summarize_at(vars(paste0("ht_", 1:4)), ~ length(.x[.x > ht_5]))

# A tibble: 1 x 4
   ht_1  ht_2  ht_3  ht_4
  <int> <int> <int> <int>
1     6    39   131   258
0
ответ дан Cettt 5 March 2019 в 10:58
поделиться
Другие вопросы по тегам:

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