kzen.dev
  • Pytania
  • Tagi
  • Użytkownicy
Powiadomienia
Nagrody
Rejestracja
Po zarejestrowaniu się, będziesz otrzymywać powiadomienia o odpowiedziach i komentarzach do swoich pytań.
Zaloguj się
Brak tłumaczeń pasujących do Twojego wyszukiwania Jeśli masz już konto, zaloguj się, aby sprawdzić nowe powiadomienia.
Za dodane pytania, odpowiedzi i komentarze przewidziane są nagrody.
Więcej
Źródło
Edytuj
Jeff Allen
Jeff Allen
Question

Utwórz pustą ramkę danych.

I'm próbuje zainicjować data.frame bez żadnych wierszy. Zasadniczo chcę określić typy danych dla każdej kolumny i nazwać je, ale nie mam żadnych wierszy utworzonych w wyniku.

Najlepsze, co do tej pory udało mi się zrobić, to coś w stylu:

df <- data.frame(Date=as.Date("01/01/2000", format="%m/%d/%Y"), 
                 File="", User="", stringsAsFactors=FALSE)
df <- df[-1,]

Co tworzy data.frame z pojedynczym wierszem zawierającym wszystkie typy danych i nazwy kolumn, które chciałem, ale także tworzy bezużyteczny wiersz, który następnie musi zostać usunięty.

Czy istnieje lepszy sposób, aby to zrobić?

446 2012-05-21T16:35:18+00:00 3
 Jaap
Jaap
Edytowane pytanie 29. sierpnia 2018 в 10:31
Programowanie
r
dataframe
r-faq
To pytanie ma 1 odpowiedź w języku angielskim, aby je przeczytać zaloguj się na swoje konto.
Solution / Answer
 digEmAll
digEmAll
21. maja 2012 в 4:44
2012-05-21T16:44:51+00:00
Więcej
Źródło
Edytuj
#16241497

Po prostu zainicjalizuj go pustymi wektorami:

df <- data.frame(Date=as.Date(character()),
                 File=character(), 
                 User=character(), 
                 stringsAsFactors=FALSE) 

Oto'inny przyk&#322ad z ró&#380nymi typami kolumn :

df <- data.frame(Doubles=double(),
                 Ints=integer(),
                 Factors=factor(),
                 Logicals=logical(),
                 Characters=character(),
                 stringsAsFactors=FALSE)

str(df)
> str(df)
'data.frame':   0 obs. of  5 variables:
 $ Doubles   : num 
 $ Ints      : int 
 $ Factors   : Factor w/ 0 levels: 
 $ Logicals  : logi 
 $ Characters: chr 

N.B. :

Zainicjowanie data.frame z pustą kolumną niewłaściwego typu nie zapobiega dalszemu dodawaniu wierszy z kolumnami różnych typów.
Ta metoda jest po prostu nieco bezpieczniejsza w tym sensie, że od początku będziesz miał prawidłowe typy kolumn, więc jeśli twój kod opiera się na sprawdzaniu typów kolumn, będzie działał nawet z data.frame z zerową liczbą wierszy.

 digEmAll
digEmAll
Edytowana odpowiedź 11. czerwca 2015 в 5:49
604
0
Artificial intelligence to parse product page
productapi.dev
 zeleniy
zeleniy
12. listopada 2013 в 1:59
2013-11-12T13:59:54+00:00
Więcej
Źródło
Edytuj
#16241498

Możesz to zrobić bez określania typów kolumn

df = data.frame(matrix(vector(), 0, 3,
                dimnames=list(c(), c("Date", "File", "User"))),
                stringsAsFactors=F)
 MERose
MERose
Edytowana odpowiedź 10. października 2015 в 12:03
77
0
Artificial intelligence to parse product page
productapi.dev
 Rentrop
Rentrop
28. października 2014 в 5:30
2014-10-28T17:30:00+00:00
Więcej
Źródło
Edytuj
#16241499

Możesz użyć read.table z pustym ciągiem dla wejścia text w następujący sposób:

colClasses = c("Date", "character", "character")
col.names = c("Date", "File", "User")

df <- read.table(text = "",
                 colClasses = colClasses,
                 col.names = col.names)

Alternatywnie podając col.names jako ciąg znaków:

df <- read.csv(text="Date,File,User", colClasses = colClasses)

Podziękowania dla Richarda Scrivena za ulepszenie

 Rentrop
Rentrop
Edytowana odpowiedź 28. września 2016 в 9:22
51
0
Dodaj pytanie
Kategorie
Wszystkie
Technologia
Kultura / Rekreacja
Życie / Sztuka
Nauka
Profesjonalny
Biznes
Użytkownicy
Wszystkie
Nowy
Popularny
1
Inessa bu
Zarejestrowany 1 miesiąc temu
2
Denis Babushkin
Zarejestrowany 1 miesiąc temu
3
asakuno asakuno
Zarejestrowany 1 miesiąc temu
4
aldo salerno
Zarejestrowany 1 miesiąc temu
5
Анна Батицкая
Zarejestrowany 1 miesiąc temu
Artificial intelligence to parse product page
productapi.dev
BG
DA
DE
EL
ES
FI
FR
ID
IT
JA
KO
LV
NL
NO
PL
PT
RO
RU
SK
TR
ZH
© kzen.dev 2023
Źródło
stackoverflow.com
na podstawie licencji cc by-sa 3.0 z przypisaniem