2017-06-26 10 views
0

Ich versuche, eine leere data.frame in R zu erstellen, um es später zu füllen. die Struktur I zu schaffen versuch ist einfach: es nur eine Spalte mit einigen Namen (Strings) hat und eine andere, wobei jeder Eintrag eine ganze Zahl Vektor von (potentiell) unterschiedlicher LängeProbleme beim Erstellen eines leeren Datenframe in r

ex:

john | 1,2

markieren | 4,5,6

andy | 9

Ich möchte die Struktur erstellen und später ausfüllen, da ich Daten von einem anderen Datenframe lese ... Ich könnte es mit einer Schleife tun, aber ich frage mich, ob es eine schnellere und elegantere Lösung gab. ..Ich versuchte

data<-data.frame(people = names,counts = replicate(20,list(c(numeric(0))))) 

wo Namen ist eine Liste von 20 Elementen.

Ich habe auch versucht

rep(list(c(numeric(0))),20) 

aber ich bekomme immer die gleichen Fehler

arguments imply differing number of rows: 20, 0 

Ich hoffe, dass Sie die Frage interessant und nicht zu dumm finden, da ich zu R neu bin ... Ich benutze ein Matlab Fan LOL

danke

+0

Ist es wichtig, eine 'data.frame' Struktur zu haben? Wenn jede Person eine andere Anzahl von Elementen hat, würde ich eine Liste besser passen. – R18

+0

danke @ R18 es wäre auch eine gute Lösung – peppuce

Antwort

0

erstellen Ihnen einen leeren Datenrahmen zu sein:

data <- data.frame(names = character(0), counts = I(list()), stringsAsFactors = FALSE) 

erstellen 20 Datenrahmen Reihen gefüllt mit NA s(edit) leeren Strings "" und eine Liste mit leeren numerischen Vektoren:

data <- data.frame(names = character(20), counts = I(replicate(20, numeric(0), simplify = FALSE)), stringsAsFactors = FALSE) 

edit: wenn Sie wollen NA s statt "" s, versuchen rep(NA_character_, 20) eher als character(20)

+0

Danke Aurèle, beide Lösungen funktionieren einwandfrei :) – peppuce

Verwandte Themen