web-dev-qa-db-fra.com

Argument sans caractère dans la fonction de division de chaîne R (strsplit)

Cela marche

x <- "0.466:1.187:2.216:1.196"
y <- as.numeric(unlist(strsplit(x, ":")))

Valeurs de blat$LRwAvg tout ressemble à X ci-dessus mais cela ne fonctionne pas

for (i in 1:50){
  y <- as.numeric(unlist(strsplit(blat$LRwAvg[i], "\\:")))
  blat$meanLRwAvg[i]=mean(y)
}

À cause de:

Erreur dans strsplit (blat $ LRwAvg [i], "\:"): argument sans caractère

Peu importe si j'ai une, deux ou des barres obliques inverses nulles.

Quel est mon problème? (Pas généralement, je veux dire dans cette tâche spéciale, techniquement)

29
AWE

Comme agstudy impliquait blat$LRwAvg <- as.character(blat$LRwAvg) avant que la boucle ne le corrige

blat$meanLRwAvg <- blat$gtFrqAvg #or some other variable in data frame with equal length
blat$LRwAvg <- as.character(blat$LRwAvg)
for (i in 1:50){
  y <- as.numeric(unlist(strsplit(blat$LRwAvg[i], "\\:")))
  blat$meanLRwAvg[i]=mean(y)
}
32
AWE