2015-04-17 5 views
2

Я пытаюсь распечатать все переменные в моей среде, которые имеют определенный тип (например, «матрица»). Я попыталсяПреобразование имен переменных в переменные

for(f in ls()) {if(is.matrix(f) print(f) } 

Очевидно, что это не работает, потому что ls() возвращает список строк. Я пробовал другие вещи, но я не могу преобразовать строку f в переменную f. Кто-нибудь знает как это сделать?

В двух словах, если у меня есть строковая переменная y, которая содержит «x», а x также является переменной в моей среде, я хочу использовать y для доступа к x. Конечно, я, возможно, не знаю априорно, какое значение у имеет значение.

ответ

2

Вы можете get, чтобы получить доступ к объекту

for(f in ls()) { if(is.matrix(get(f))) print(f) } 
2

Вы можете использовать mget(), чтобы получить объекты, соответствующие вектору имен переменных

for(f in mget(ls())) { if(is.matrix(f)) print(f) } 
+0

Этот ответ также работает. Благодаря! –

Смежные вопросы