2016-04-12 3 views
0

Der Versuch, ein Paar von Element zu schaffen, sondern die folgende Fehlermeldung erhalten:Bedeutung von combn Fehler: Fehler in FUN (X [[i]], ...): n <m in R

Error in FUN(X[[i]], ...) : n < m 

Die Fehler erscheint nach dem Code ausgeführt wird:

rslt <- lapply(split(my$symbol, my$character), combn, 2, simplify = F) 

Hier my ist mein Datenrahmen und ein Symbol und Zeichen Spalte von Datenrahmen. Der Datenrahmen enthält 26.552 Zeilen. Hier habe ich den kleinen Teil meiner Daten veröffentlicht.

my: 
symbol character 
BHMT Abruptio Placentae 
BHMT Diabetes Mellitus, Type 2 
BHMT Lymphoma, Non-Hodgkin 
BHMT Neural Tube Defects 
BID  Carcinoma, Hepatocellular 
BID  Stomach Neoplasms 
BIN1 Alzheimer Disease 
BIN1 Myopathies, Structural, Congenital 
BIN1 Myopathy, Centronuclear, Autosomal Recessive 
BIRC5 Lung Neoplasms 
BIRC5 Ovarian Neoplasms 
BIRC5 Stomach Neoplasms 
BIRC6 Neoplasms 
BIRC7 Carcinoma, Renal Cell 
BLK  Arthritis, Rheumatoid 
BLK  Lupus Erythematosus, Systemic 
BLK  Maturity-onset diabetes of the young, type 11 

Jede Hilfe wird geschätzt. Vielen Dank.

Antwort

2

Dies ist einer der Fälle, in denen es weniger Elemente als 'm' gibt. Eine Option wäre, eine Ausnahme für length von list zu erstellen, die kleiner als "m"

lapply(split(my$symbol, my$character), function(x) 
      if(length(x)>1) { 
      combn(x, 2, simplify=FALSE) 
      } 
      else x) 
ist