Я создал функцию, которая вычисляет статистику по различным данным пациентов, а также выводит графики, создает кадры данных, содержащие сводную статистику для каждого пациента.Пользовательская функция экспортирует несколько кадров данных в глобальную среду
Если я копирую и запускаю функцию внутри R, выходы доступны для меня. Тем не менее, теперь я вызываю функцию из отдельного R-скрипта, и кадры данных больше недоступны.
Есть ли способ исправить это?
Например,
test=function(a){
A=a
B=2*a
C=3*a
D=4*a
DF=data.frame(A,B,C,D)
}
a=c(1,2,3,4)
test(a)
Это не возвращает DF
, но если бы я типа:
a=c(1,2,3,4)
A=a
B=2*a
C=3*a
D=4*a
DF=data.frame(A,B,C,D)
DF
Тогда ясно, возвращается. Есть ли простой способ исправить это, чтобы DF
стал доступен из функции test
?
Если 'test (a)' не возвращает DF, возможно, вы должны добавить строку, подобную 'return (DF)' внутри функции. (Не уверен, что это то, что вы имеете в виду.) – Frank
Это не совсем то, что я имел в виду, но я вижу, как это натолкнулось на этот путь. Я бы хотел, чтобы 'DF' хранился в глобальной среде, а не отображался в консоли. – sym246
Если вы добавите 'return (DF)' внутри функции и используете функцию типа 'DF = test (a)', она должна делать то, что вы ожидаете. Это идиоматический способ сделать что-то в R, вместо того, чтобы создавать функции в качестве побочных эффектов. Если вы действительно хотите, как вы описали, есть оператор '<< -' присваивания, который может работать, но обычно его не поощряют. Связано: http://stackoverflow.com/q/9726705/1191259 – Frank