Создайте одну переменную и заполните значениями, имена которых совпадают с именем набора данных в R

#r #dplyr

#r #dplyr

Вопрос:

у меня есть anydata . Предположим, что это

     Travelfusion_7=structure(list(ds = c("2020-08-31T00:00:00Z", "2020-08-31T00:00:00Z", 
"2020-08-31T00:00:00Z"), trend = c("4736.16577882505", "4736.16577882505", 
"4736.16577882505"), yhat_lower = c("-13755.1981749027", "-11887.7739934717", 
"-14503.9964570117"), yhat_upper = c("20587.349757926", "23317.5389471031", 
"23374.2910099045"), trend_lower = c("4736.16577882505", "4736.16577882505", 
"4736.16577882505"), trend_upper = c("4736.16577882505", "4736.16577882505", 
"4736.16577882505"), yhat = c("4736.16577882505", "4736.16577882505", 
"4736.16577882505")), class = "data.frame", row.names = c(NA, 
-3L))
  

здесь 6 переменных

 ds
trend
yhat_lower
yhat_upper
trend_lower
trend_upper
  

Как создать одну переменную, которая вызывается "suppl" и заполняется значениями, имена которых совпадают с именем набора данных
Здесь набор данных, называемый "Travelfusion_7" так "suppl" , должен содержать значение

Поэтому, чтобы быть более понятным, вывод должен быть.

            suppl                   ds            trend
1 Travelfusion_7 2020-08-31T00:00:00Z 4736.16577882505
2 Travelfusion_7 2020-08-31T00:00:00Z 4736.16577882505
3 Travelfusion_7 2020-08-31T00:00:00Z 4736.16577882505
         yhat_lower       yhat_upper      trend_lower
1 -13755.1981749027  20587.349757926 4736.16577882505
2 -11887.7739934717 23317.5389471031 4736.16577882505
3 -14503.9964570117 23374.2910099045 4736.16577882505
       trend_upper             yhat
1 4736.16577882505 4736.16577882505
2 4736.16577882505 4736.16577882505
3 4736.16577882505 4736.16577882505
  

Комментарии:

1. Не могли бы вы объяснить, что вы пытаетесь здесь сделать? Это может быть : Travelfusion_7 %>% mutate(suppl = 'Travelfusion_7')

2. @RonakShah очень простая идея. Спасибо

Ответ №1:

Вы можете попробовать что-то вроде этого:

 library(magrittr)

origin <- tibble::tibble(A = 1:10)

origin %>% 
  dplyr::mutate(df_name = deparse(substitute(origin)))
#> # A tibble: 10 x 2
#>        A df_name
#>    <int> <chr>  
#>  1     1 origin 
#>  2     2 origin 
#>  3     3 origin 
#>  4     4 origin 
#>  5     5 origin 
#>  6     6 origin 
#>  7     7 origin 
#>  8     8 origin 
#>  9     9 origin 
#> 10    10 origin
  

Создано 2020-11-17 пакетом reprex (версия 0.3.0)