2016-02-07 3 views
1

Фон:
У MatLab (или MATLAB) есть команда под названием «eval». Он позволяет создавать текстовые построения операторов и их выполнение. этот код:r эквивалент matlab eval

x = 1:100 
y = sin(x*(pi/50)) 

f1 = 'plot(' 
f2 = 'x,y' 
f3 = ');' 

eval(strcat(f1,f2,f3)) 

создаст этот участок

plot

справочной документации в «R», кажется, не будет об указании и манипулирования строками символов.

Вопрос:
Какой способ сделать это в «R»

+1

Я предполагаю, что вы ищете для этого 'участка (х, у, тип = "л")' – lizzie

+0

@lizzie, я думаю MichaelChirico получил. Я хочу, чтобы иметь возможность обернуть его в циклы, и строить имена переменных и параметры функции с помощью переменных. – EngrStudent

ответ

3

eval(parse()) Вы хотите, например,

eval(parse(text = paste0("plot(", "x,y", ")"))) 

Конечно, вы должны построить на этой команды действительно имитировать вывод MATLAB, например

arguments <- c('x', 'y', 'type="l"', 'col="blue"', 
       'xlim=range(x)','ylim=range(y)') 
cmd <- paste0("plot(", paste(arguments, collapse = ","), ")") 
eval(parse(text = cmd)) 

enter image description here

+1

'eval (call ('plot', as.symbol ('x'), as.symbol ('y')))' вместо того, чтобы создавать правильно разграниченное текстовое представление только для его анализа. –

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