Как я соответствую тексту в HTML, это не внутренние теги?

По умолчанию poly вычисляет ортогональные полиномы. Вы можете отключить ортогонализацию с помощью аргумента raw=TRUE.

Обратите внимание, что формула имеет два появления: один раз с исходными именами переменных при подгонке регрессий, а затем в stat_smooth с использованием общих имен переменных x и y. Но в остальном это должна быть та же формула, с raw=TRUE.

library("tidyverse")

# Define/import your data here....

df_fits <- df_calibration %>%
  group_by(substance) %>%
  do(fit = lm(area ~ poly(dilution, 2, raw = TRUE), data = .)) %>%
  broom::tidy(fit) %>%
  select(substance, term, estimate) %>%
  spread(term, estimate) %>%
  # It is simpler to rename the coefficients here
  setNames(c("substance", "c", "b", "a"))

# join parameters with sample data
df_samples <- left_join(df_samples, df_fits)

# calculate with general solution for polynomial 2nd order
df_samples <- df_samples %>%
  mutate(dilution_calc = (b * (-1) + sqrt(b^2 - (4 * a * (c - area)))) / (2 * a))

my.formula <- y ~ poly(x, 2, raw = TRUE)

df_calibration %>%
  ggplot(aes(x = dilution, y = area)) +
  stat_smooth(method = "lm", se = FALSE, formula = my.formula) +
  geom_point(shape = 17) +
  geom_point(
    data = df_samples,
    aes(x = dilution_calc, y = area),
    shape = 1, color = "red"
  ) +
  facet_wrap(~substance, scales = "free")

Создано в 2019-03-31 пакетом Представить (v0.2.1) sup>

8
задан Chad Birch 3 April 2009 в 21:58
поделиться

3 ответа

Если можно абсолютно гарантировать, что нет никаких угловых скобок в HTML кроме используемых, чтобы открыть и закрыть теги, это должно работать:

s%(>|\G)([^<]*?)($key)%$1$2<b>$3</b>%g
10
ответ дан 5 December 2019 в 08:54
поделиться

В целом Вы хотите проанализировать HTML в DOM и затем пересечь текстовые узлы. Я использовал бы Шаблон:: Совершенствуйте для этого:

#!/usr/bin/env perl

use strict;
use warnings;
use feature ':5.10';

use Template::Refine::Fragment;

my $frag = Template::Refine::Fragment->new_from_string('<p>Hello, world.  <a href="http://foo.com/">This is a test of foo finding.</a>  Here is another foo.');

say $frag->process(
    simple_replace {
        my $n = shift;
        my $text = $n->textContent;
        $text =~ s/foo/<foo>/g;
        return XML::LibXML::Text->new($text);
    } '//text()',
)->render;

Это производит:

<p>Hello, world.  <a href="http://foo.com/">This is a test of &lt;foo&gt; finding.</a>  Here is another &lt;foo&gt;.</p> 

Так или иначе не анализируйте структурированные данные с регулярными выражениями. HTML не является "регулярным", это "контекстно-свободно".

Править: наконец, если Вы генерируете HTML в своей программе, и необходимо сделать преобразования как это на строках, "УР DOIN ЭТО НЕПРАВИЛЬНО". Необходимо создать DOM и только сериализировать его, когда все было преобразовано. (Можно все еще использовать TR, однако, через new_from_dom конструктор.)

7
ответ дан 5 December 2019 в 08:54
поделиться

Следующий regex будет соответствовать всему тексту между тегами или за пределами тегов:

<.*?>(.*?)<.*?>|>(.*?)<

Затем можно воздействовать на который, как желаемый.

2
ответ дан 5 December 2019 в 08:54
поделиться
Другие вопросы по тегам:

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