Может ли кто-нибудь помочь мне написать фрейм данных R в качестве набора данных SAS?

В R я использовал функцию write.foreign() из библиотеки foreign, чтобы записать фрейм данных в виде набора данных SAS.

write.foreign(df = test.df, datafile = 'test.sas7bdat', codefile = 'test.txt', package = "SAS")

Файл данных SAS написан, но когда я пытаюсь открыть его в SAS Viewer 9.1 (Windows XP), я получаю следующее сообщение: "Формат файла данных SAS не поддерживается".

Примечание. Я вообще не знаком с SAS, поэтому, если существует ответ, который был бы известен обычным пользователям SAS, пожалуйста, извините мое невежество.

Ответ 1

Я тоже не очень люблю пользователя SAS, но раньше я использовал write.xport(), и он работал нормально. Я понимаю, что существует два типа файлов SAS: внутренние и XPORT файлы. XPORT - это те, которые более совместимы в разных версиях, архитектурах и т.д.

Ответ 2

write.foreign с опцией package="SAS" фактически выписывает текстовый файл с разделителями-запятыми и затем создает файл script с инструкциями SAS для его чтения. Вы должны запустить SAS и отправить script, чтобы включить текстовый файл в набор данных SAS. Ваш вызов должен больше походить на

write.foreign(df=test.df, datafile="test.csv", codefile="test.sas", package="SAS")

Обратите внимание на другое расширение. Кроме того, write.foreign записывает факторные переменные в виде числовых переменных с форматом, контролирующим их внешний вид, т.е. Определение коэффициента R. Если вам просто нужно представление символа, вам нужно будет преобразовать факторы через as.character перед экспортом.

Ответ 3

Вы можете легко сделать это с помощью SAS: просто протестируйте SAS/IML (proc iml) или IMLPlus (объектно-ориентированную версию) с помощью SAS/IML Studio.

Смотрите это: http://support.sas.com/documentation/cdl/en/imlsstat/63827/HTML/default/viewer.htm#imlsstat_statr_sect004.htm

или загрузить SAS/IML Studio бесплатно: http://www.sas.com/apps/demosdownloads/92_SDL_sysdep.jsp?packageID=000721 Этот выпуск SAS/IML Studio обеспечивает возможность взаимодействия с языком R.