R — принимает имена столбцов фрейма данных и собирает в формулу

#r #string #dataframe #formula

#r #строка #фрейм данных #формула

Вопрос:

У меня есть следующий тип набора данных в R:

 col1   col2    col3    col4    col5    col6    col7
1       h       s       h       s       s       l
2       l       m       s       l       h       s
3       m       h       l       l       h       l
4       vh      s       h       l       s       s
5       vl      s       s      vl       s       l
6       m       s       l       h       l       h
7       l       s       l       h       h       h
8       l       s       h       m       s       h
  

где colX — общее имя столбца фрейма данных.

Я хотел бы создать функцию, которая, учитывая в качестве входных данных, скажем, четыре желаемых colX (например, col1 , col3 , col4 , col7 ), способна преобразовывать следующим образом:

col1 col3 col4 col7

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

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

Ответ №1:

Используйте as.formula и paste :

 f <- function(x) as.formula(paste("dependent_variable ~", 
                            paste(colnames(x), collapse=" ")))

dat <- data.frame(col1=rnorm(10),
                  col2=rnorm(10),
                  col3=rnorm(10))

f(dat)
#> dependent_variable ~ col1   col2   col3
  

Очевидно, вам просто нужно изменить colnames(x) вектор имен столбцов, которые вы хотите использовать в формуле.