2017-09-04 3 views
0

J'ai une matrice fragmentée dans R. Utilisation du package libFMexe Je peux convertir la matrice au format correct pour libFM. Je reçoisConversion d'un fichier de caractères au format R au format .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" 

ce qui est correct selon mes données et dans le format que je le veux. Maintenant, je veux utiliser libFM sur ces données.

D'abord, j'ai essayé d'utiliser effectivement

libFM(libFMmat_train, libFMmat_test) 

mais je reçois

sh: libFM: command not found 
Error in system(libfm_exe, intern = TRUE) : error in running command 

maintenant je suis en train de le faire dans mon terminal. J'utilise

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

mais quand je lance libfm sur ces données que je reçois

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 

Donc, ma question est - comment puis-je enregistrer un fichier de caractères R dans le format correct en tant que fichier .libfm de sorte que Je peux utiliser libFM?

Répondre

0

Je l'ai résolu moi-même, le fichier était déjà dans le bon format de texte, et il n'avait pas besoin d'être converti en un format .libfm. Donc, je simplement converti mon caractère vecteur libFMmat au format libfm en utilisant (dans un autre thread stackoverflow)

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

pour obtenir un fichier txt qui pourrait être utilisé avec libfm.