Цикл по нестандартным именам переменных в R - PullRequest
0 голосов
/ 10 сентября 2018

У меня есть фрейм данных (df) с переменными, которые похожи на векторные переменные:

myvariable[1], myvariable[2] , myvariable[3] и т. Д.

Однако, если я хочу сослаться на них, R автоматически создаст вокруг них бартики:

df$`myvariable[1]`

Я хочу использовать эти переменные в цикле for и, следовательно, хочу автоматически менять число в скобках. Кто-нибудь знает как это сделать?

PS: Этот вопрос отличается от других вопросов тем, что R не рассматривает мои переменные как векторные переменные, а скорее как отдельные переменные, которые выглядят одинаково. Следовательно, [] -часть моих переменных видится только как некая строка, а не как оператор подмножества.

PS2: dput(head(zTT$subjects[, c("myvariable[1]","myvariable[3]","myvariable[4]")],4))

structure(list(\`myvariable[1]\` = c(2, 4, 2, 9), \`myvariable[3]\` = c(1, 
1,2, 3), \`myvariable[4]\` = c(2, 4, 2, 7)), .Names = c("myvariable[1]", 
"myvariable[3]", "myvariable[4]"), row.names = c(NA, 4L), class = "data.frame")

1 Ответ

0 голосов
/ 10 сентября 2018

Как предложил Акрун, вы можете использовать [[.Приведенный ниже код использует ваш собственный фрейм данных для построения строки, которая соответствует именам списка.

temp <- structure(list(`myvariable[1]` = c(2, 4, 2, 9),
                       `myvariable[3]` = c(1, 1,2, 3),
                       `myvariable[4]` = c(2, 4, 2, 7)),
                  .Names = c("myvariable[1]", "myvariable[3]",
                             "myvariable[4]"), row.names = c(NA, 4L),
                  class = "data.frame")

for (i in c(1, 3, 4)) {
  myVar <- paste0("myvariable[", i, "]")
  print(temp[[myVar]])

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...