Может ли кто-нибудь помочь мне написать фрейм данных 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.