Erstbenutzer hier! Ich lerne gerade R und habe, was ich hoffe, eine einfache Frage. Ich habe eine Reihe von Zahlen und Zahlen, und ich möchte sicherstellen, dass keine Zahl größer als eins ist. Ich versucheR: Benutzerdefinierte Funktion in apply()
myfct <- function(x) {
if (x > 1.0) x = 1.0
return(x)
}
apply(nums, 1, myfct)
zu tun, aber dann bekomme ich diesen Fehler
Error in apply(nums, 1, myfct) :
dim(X) must have a positive length
Was mache ich falsch und gibt es einen besseren Weg, es zu tun? Vielen Dank!
Willkommen bei SO nutzen! 'apply' kann nur für Matrizen und Arrays verwendet werden und es sieht so aus, als ob Ihre' nums' nur ein Vektor sind. Sieh dir 'sapply' und' lapply' an. Zweitens, für diese und zukünftige Fragen haben Sie eine viel bessere Antwortrate (größer als 0), wenn Sie zuerst über [minimum] (http://stackoverflow.com/help/mcve) und [reproduzierbare Fragen] lesen (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). – r2evans
Es scheint, dass "nums" ein Vektor ist. So können Sie die 'myfct', dh' myfct (nums) 'mit Änderungen in' myfct' direkt anwenden, wie zB 'if' nach' ifelse' ändern – akrun
pmin (x, 1) oder x [x> 1] <- 1 – Roland