2017-09-04 12 views
0

R에서 희소 행렬이 있습니다. 패키지 을 사용합니다. libFMexe 행렬을 libFM의 올바른 형식으로 변환 할 수 있습니다. 나는 내 데이터에 내가 원하는 형식에 따라 올바른R에서 .libfm 형식의 문자 파일로 변환

head(libFMmat) 
[1] "1 0:1 5000:1 33736:1 33737:1 33738:1 33739:1 33740:1 33741:1 
33742:1 33743:1 33744:1 33745:1 33746:1 33747:1" 
[2] "1 0:1 5001:1 33735:1 33737:1 33738:1 33739:1 33740:1 33741:1 
33742:1 33743:1 33744:1 33745:1 33746:1 33747:1" 
[3] "1 0:1 5002:1 33735:1 33736:1 33738:1 33739:1 33740:1 33741:1 
33742:1 33743:1 33744:1 33745:1 33746:1 33747:1" 
[4] "1 0:1 5003:1 33735:1 33736:1 33737:1 33739:1 33740:1 33741:1 
33742:1 33743:1 33744:1 33745:1 33746:1 33747:1" 
[5] "1 0:1 5004:1 33735:1 33736:1 33737:1 33738:1 33740:1 33741:1 
33742:1 33743:1 33744:1 33745:1 33746:1 33747:1" 
[6] "1 0:1 5005:1 33735:1 33736:1 33737:1 33738:1 33739:1 33741:1 
33742:1 33743:1 33744:1 33745:1 33746:1 33747:1" 

얻을. 이제이 데이터에 libFM을 사용하고 싶습니다.

먼저 사실
libFM(libFMmat_train, libFMmat_test) 

를 사용하여 시도하지만 난 그래서 지금은 내 터미널에서 작업을 수행하려고
sh: libFM: command not found 
Error in system(libfm_exe, intern = TRUE) : error in running command 

를 얻을. 나는

save(libFMmat_train, file= "/.../libFMmat_train.libfm") 

를 사용하지만이 데이터를 libFM을 실행할 때 나는 그래서 내 질문은

Loading train...  
has x = 0 
has xt = 1 

ERROR: cannot parse line "??=???U??;p;?x"?k??Kb??X??? ?ƭV08?P0r? 
@ոS.$%F$JZ(i??) I73?f?D4?qG?lG????[????5?n??<??{??ֵ?u]????ӿ????'>???o??? 
w????c?ϻO??O??????_~??????W?̡?,???:??}???|???7~??????Q/?C?(???̣ƴ>K?a? 
ϔ???)?g?u???a?????ߕ9??} 
      ??;?????qL??>???s???????_l???_??\Kܿ???s5?i?[cl??1?_W???5? 
>???u???ge__(??ʈQ????c?y?}?u?????f??b֟co?{ZJs???h=?V?{??L?????ܟ?<????j?? 
q??_??\R,?S????^???ܿ>??????}????^rߟ???Q?:?^_???K\_??{???q??????3?????? 
R.a??^uaIXS?_X???1?bϽ??????????~o}??^????????N~t}a?:?iؿ?k???Ӿ???s??Y??? 
{J)v=?0????K?z?m 
}???:???H9??,|?s}??????5??<?cZ?Y???????om???=???Ǖί?1???cLC????+k!?9??? 
ޖJ~[|oW??"?ף?u!?Ԧ????u????h?Xߐs?" at character 

을 얻을 - 어떻게 있도록 .libfm 파일로 올바른 형식의 R 문자 파일을 저장합니까 libFM을 사용할 수 있습니까?

답변

0

직접 해결했지만 파일은 이미 올바른 텍스트 형식이므로 .libfm 형식으로 변환 할 필요가 없습니다. 그래서 단순히 libFM와 함께 사용할 수있는 .txt 파일을 얻기 위해 (다른 유래 스레드에있는)를 사용하여 libFM 형식

fileConn <- file("output.txt") 
writeLines(libFMmat, fileConn) 
close(fileConn) 

내 문자 벡터 libFMmat 변환.