У меня есть автоматический скрипт, который создает стандартную формулу (т. Е. Y ~ x1 + x2), и я хотел бы отображать данные на основе этих переменных.Удаление столбцов в кадре данных с использованием списка имен переменных
До сих пор я получил это далеко, но я ударил мертвую точку, где я не могу вполне понять это:
#Example data
df <- data.frame(x=1:5, y=2:6, z=3:7, u=4:8)
df
x y z u
1 1 2 3 4
2 2 3 4 5
3 3 4 5 6
4 4 5 6 7
5 5 6 7 8
#Example formula
ex_form = "x~y+u"
#Delete the ~ and add a + sign to be consistent
step1 = gsub("~","+", ex_form)
#Remove + signs
step2 = strsplit(step1, "\\+")
#Final list of variables
step3 = unlist(step2)
Большинство решений я видел что-то вдоль линий:
#Create list of variables
mylist = c("x", "y", "u")
#Cut data
temp = df[ ,mylist]
temp
x y u
1 1 2 4
2 2 3 5
3 3 4 6
4 4 5 7
5 5 6 8
Но это решение не совсем вписывается в автоматизацию ... поэтому мне нужно перейти от того, что у меня к этому результату. Есть предположения?
Примечание: Теги - мои догадки.
Не 'df [, step3]' решение? – adaien
Используйте 'df [, step2 [[1]]]', и вы все настроены. – Gopala
@adiana и Gopala: Да, это было на самом деле так просто. По какой-то причине я думал, что это должно быть в рамках «c()». Спасибо вам. – erebusgw