2016-09-23 3 views
-3

Ist es möglich, Objekte in R mit der Länge 0 zu erstellen?Können Sie Objekte mit der Länge 0 in R erstellen?

+0

Ist es möglich? Ja. Sollten Sie es tun? Normalerweise nicht. – Roland

+2

@NikolasRieble Bitte nicht Stack Overflow empfehlen. Es ist keine gute Frage und kann durch eine schnelle Suche im Internet beantwortet werden. Es würde bei SO nicht gut ankommen. – Roland

+0

@Roland Anstatt die Frage dort zu stellen, werden Sie höchstwahrscheinlich dort eine Antwort finden. Deshalb empfehle ich SO als Ort für die Suche zuerst. Außerdem haben nach meinem Verständnis von crossvalidierten und SO - reinen Programmierproblemen hier keine Stelle, sondern SO. –

Antwort

4

Sure:

a<-vector() 
length(a) 
+0

Dies liefert keine Antwort auf die Frage. Sobald Sie genug [Reputation] (http://stats.stackexchange.com/help/whats-reputation) haben, können Sie [jeden Beitrag kommentieren] (http://stats.stackexchange.com/help/privileges/ Kommentar); stattdessen [geben Sie Antworten, die keine Klärung durch den Fragesteller erfordern] (http://meta.stackexchange.com/questions/214173/why-doe-i-need-50-reputation-to-comment-what-can- i-do-stattdessen). - [Aus Bewertung] (/ review/low-quality-posts/117635) –

+1

Die Frage ist "Ist es möglich, ...?" und die Antwort ist "Sicher" plus ein Beispiel dafür, wie es geht. Wie liefert dies keine Antwort auf die Frage? (Ich frage seit ich neu in CV bin und ich lerne die Kultur von CV kennen, wie zum Beispiel Antworten erhalten werden). Wie könnte Ema Nymton eine bessere Antwort geben? –

+1

@ Xi'an Ich stimme Nikolas zu. Ich sehe nicht, wie diese Antwort als Antwort auf die gestellte Frage beschrieben werden kann. – mark999

0

Popular Art Platzhalter für jedes Objekt in R

x <- NULL 
length(x) 
## 0 
class(x) 
## "NULL" 
str(x) 
## NULL 

Typische Anwendungen wären zu initialisieren:

x <- NULL 
for (i in 1:10) 
    x[i] <- i 

x <- NULL 
for (i in 1:10) 
    x[[i]] <- letters[1:10] 

Wie Sie sehen können, R on-the-fly ändert x zu approci gegessen (aus seiner Sicht ..) Klasse. Wenn das Objekt wie oben beschrieben ausgefüllt und erweitert wird, hat es nur die Länge Null, bis Sie es mit etwas füllen. Sie können immer Objekt der vordefinierten Größe, x <- numeric(10) deklarieren (oft von Leistungspunkt zu bevorzugen), und wenn Sie es dann mit weniger als 10 Werte gefüllt, der Rest mit Standardwerte gefüllt werden (Nullen im Fall numeric), und wenn Wenn Sie es mit mehr als 10 Werten füllen, wird es entsprechend erweitert.

Wie bereits erwähnt, können Sie auch Objekte mit vordefinierten Klassen initialisieren, z.

x <- list() 
x <- vector() 
x <- numeric() 
x <- data.frame() 

usw.

Doch Vorsicht, weil - wie immer - es gibt Ausnahmen, zum Beispiel

x <- matrix() 
dim(x) 
## [1] 1 1 
x 
##  [,1] 
## [1,] NA 
+0

Bitte, bitte, bitte warnen Sie zumindest vor wachsenden Objekten in einer Schleife und zeigen Sie, wie Sie die endgültige Objektgröße vorbelegen. – Roland

+0

@Roland aber ist nicht das erste offensichtlich und zweitens nicht mit der Frage verbunden ..? – Tim

+0

Offensichtlich für Sie vielleicht, aber sicherlich nicht OP. Und Sie zeigen, wie Sie ein Objekt in einer Schleife wachsen lassen. – Roland

Verwandte Themen