У меня есть data.frame
res
с 2 строками, и я хочу поместить значения в функцию sprintf
с тегами HTML
.Если я использую функцию tags$strong("some character")
, я получаю ошибку.Если я наберу <strong>some character</strong>
, это работает.Если у меня есть 3 строки в df
, оба кода работают.Вот MWE с 2 рядами data.frame
:
res <- data.frame(term = letters[1:2], p.value = c(0.567, 0.123), hazard = c(1.234, 3.421))
sprintf(
"%s: %s %.3f %s %.3f</br>",
res$term,
tags$strong("p-value: "),
res$p.value,
tags$strong("Hazard Ratio: "),
res$hazard
)
# Error in sprintf("%s: %s %.3f %s %.3f</br>", res$term, tags$strong("p-value: "), :
# arguments cannot be recycled to the same length
sprintf(
"%s: %s %.3f %s %.3f</br>",
res$term,
"<strong>p-value: </strong>",
res$p.value,
"<strong>Hazard Ratio: </strong>",
res$hazard
)
# works!
# [1] "a: <strong>p-value: </strong> 0.567 <strong>Hazard Ratio: </strong> 1.234</br>"
# [2] "b: <strong>p-value: </strong> 0.123 <strong>Hazard Ratio: </strong> 3.421</br>"
Три ряда data.frame
:
res <- data.frame(term = letters[1:3], p.value = c(0.567, 0.123, 0.231), hazard = c(1.234, 3.421, 5.211))
sprintf(
"%s: %s %.3f %s %.3f</br>",
res$term,
tags$strong("p-value: "),
res$p.value,
tags$strong("Hazard Ratio: "),
res$hazard
)
sprintf(
"%s: %s %.3f %s %.3f</br>",
res$term,
"<strong>p-value: </strong>",
res$p.value,
"<strong>Hazard Ratio: </strong>",
res$hazard
)
Вопросы:
- Почему это нене работает, когда у меня есть 2 строки в
df
и он работает с 3 строками? - Почему в двух строках
df
он не работает с функцией tags$strong
?