it-swarm.com.de

Wie füge ich einem Datensatz in R einen Header hinzu?

Ich muss das '' wdbc.data 'im folgenden Datenordner lesen: http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/

Dies ist in R einfach mit dem Befehl read.csv zu tun, aber da der Header fehlt, wie kann ich ihn hinzufügen? Ich habe die Informationen, weiß aber nicht, wie ich das tun soll, und ich möchte die Datendatei nicht bearbeiten.

18
blueSurfer

Sie können Folgendes tun:

Laden Sie die Daten:

test <- read.csv(
          "http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data",
          header=FALSE)

Beachten Sie, dass der Standardwert des header-Arguments für read.csvTRUE ist, um alle Zeilen zu erhalten, die Sie für FALSE benötigen.

Fügen Sie den verschiedenen Spalten im data.frame Namen hinzu

names(test) <- c("A","B","C","D","E","F","G","H","I","J","K")

oder alternativ und schneller, wie ich es verstehe (nicht den gesamten Datensatz neu laden):

colnames(test) <- c("A","B","C","D","E","F","G","H","I","J","K")
30
Jochem

Sie können auch colnames anstelle von Namen verwenden, wenn Sie data.frame oder matrix haben.

3
user1436187

wenn Sie daran interessiert sind, einige Daten aus einer .txt-Datei zu lesen und nur wenige Spalten dieser Datei mit einer custom-Kopfzeile in eine neue .txt-Datei zu extrahieren, kann der folgende Code nützlich sein:

# input some data from 2 different .txt files:
civit_gps <- read.csv(file="/path2/gpsFile.csv",head=TRUE,sep=",")
civit_cam <- read.csv(file="/path2/cameraFile.txt",head=TRUE,sep=",")

# assign the name for the output file:
seqName <- "seq1_data.txt"

#=========================================================
# Extract data from imported files
#=========================================================
# From Camera:
frame_idx <- civit_cam$X.frame
qx        <- civit_cam$q.x.rad.
qy        <- civit_cam$q.y.rad.
qz        <- civit_cam$q.z.rad.
qw        <- civit_cam$q.w

# From GPS:
gpsT      <- civit_gps$X.gpsTime.sec.
latitude  <- civit_gps$Latitude.deg.
longitude <- civit_gps$Longitude.deg.
altitude  <- civit_gps$H.Ell.m.
heading   <- civit_gps$Heading.deg.
pitch     <- civit_gps$pitch.deg.
roll      <- civit_gps$roll.deg.
gpsTime_corr <- civit_gps[frame_idx,1]

#=========================================================
# Export new data into the output txt file
#=========================================================
myData <- data.frame(c(gpsTime_corr),
                     c(frame_idx),
                     c(qx),
                     c(qy),
                     c(qz),
                     c(qw))
# Write :
cat("#GPSTime,frameIdx,qx,qy,qz,qw\n", file=seqName)
write.table(myData, file = seqName,row.names=FALSE,col.names=FALSE,append=TRUE,sep = ",")

Natürlich sollten Sie dieses Beispielskript ändern basierend auf Ihrer eigenen Anwendung.

0
Färid Alijani