Próbuję więc znaleźć sposób na wykrycie znaków "AR1" dla funkcji, którą robię. Jeśli (str_delect (AS.Character (Y1.AR2), Regex ("AR1 ', Ignore_case = T)) == T) {Drukuj (" Miłość ")} Else ...

-3
James Bradley 15 marzec 2021, 02:35

1 odpowiedź

Najlepsza odpowiedź
func <- function(x) {
  xname <- deparse(substitute(x))
  if (grepl("ar1", xname, ignore.case = TRUE)) "love" else "nolove"
}
y1.AR2 <- 1
func(y1.AR2)
# [1] "nolove"

y1.AR1 <- 2
func(y1.AR1)
# [1] "love"

Znalezienie nazwy argumentu do funkcji jest trochę kruche. Na przykład

func(c("1", "quux", "tar1234"))
# [1] "love"

Ponieważ deparse(substitute(x)) rozwiązano do dosłownego wyrażenia wykorzystywanego do utworzenia pierwszego argumentu.

0
r2evans 14 marzec 2021, 23:57