Behalten Sie die Etiketten aus Ihrer Originaldatei wie folgt bei:
df = read.table('data.txt', header = T)
Wenn Sie Spalten mit den Namen x und y haben, können Sie diese folgendermaßen ansprechen:
df$x
df$y
Wenn Sie die erste Zeile tatsächlich aus einem data.frame löschen möchten, können Sie negative Indizes wie folgt verwenden:
df = df[-1,]
Wenn Sie eine Spalte aus einem data.frame löschen möchten, können Sie ihr NULL zuweisen:
df$x = NULL
Hier sind einige einfache Beispiele zum Erstellen und Bearbeiten eines data.frame in R:
# create a data.frame with 10 rows
> x = rnorm(10)
> y = runif(10)
> df = data.frame( x, y )
# write it to a file
> write.table( df, 'test.txt', row.names = F, quote = F )
# read a data.frame from a file:
> read.table( df, 'test.txt', header = T )
> df$x
[1] -0.95343778 -0.63098637 -1.30646529 1.38906143 0.51703237 -0.02246754
[7] 0.20583548 0.21530721 0.69087460 2.30610998
> df$y
[1] 0.66658148 0.15355851 0.60098886 0.14284576 0.20408723 0.58271061
[7] 0.05170994 0.83627336 0.76713317 0.95052671
> df$x = x
> df
y x
1 0.66658148 -0.95343778
2 0.15355851 -0.63098637
3 0.60098886 -1.30646529
4 0.14284576 1.38906143
5 0.20408723 0.51703237
6 0.58271061 -0.02246754
7 0.05170994 0.20583548
8 0.83627336 0.21530721
9 0.76713317 0.69087460
10 0.95052671 2.30610998
> df[-1,]
y x
2 0.15355851 -0.63098637
3 0.60098886 -1.30646529
4 0.14284576 1.38906143
5 0.20408723 0.51703237
6 0.58271061 -0.02246754
7 0.05170994 0.20583548
8 0.83627336 0.21530721
9 0.76713317 0.69087460
10 0.95052671 2.30610998
> df$x = NULL
> df
y
1 0.66658148
2 0.15355851
3 0.60098886
4 0.14284576
5 0.20408723
6 0.58271061
7 0.05170994
8 0.83627336
9 0.76713317
10 0.95052671
header=T
derT
steht fürTRUE
, so dass dieser Parameter R zu Last - Header sagt. Siehe?read.table
für Details.drop = FALSE
bei negativer IndizierungSie können eine negative Indizierung verwenden, um Zeilen zu entfernen, z.
Hier ist ein Beispiel:
Das heißt, Sie haben möglicherweise mehr Probleme als nur das Entfernen der Beschriftungen, die in Zeile 1 gelandet sind. Es ist mehr als wahrscheinlich, dass R die Daten als Text interpretiert und von dort in Faktoren konvertiert hat. Überprüfen Sie, was
str(foo)
, wofoo
sich Ihr Datenobjekt über die Datentypen befindet.Es hört sich so an, als müssten Sie
header = TRUE
in Ihrem Anruf nur die Daten einlesen (vorausgesetzt, Sie lesen sie überread.table()
oder einen ihrer Wrapper ein).quelle
Wahrscheinlich möchte niemand die erste Zeile wirklich entfernen. Wenn Sie also nach etwas Sinnvollem suchen, ist dies eine bedingte Auswahl
quelle
Obwohl ich der am häufigsten gewählten Antwort zustimme, gibt es hier eine andere Möglichkeit, alle Zeilen außer der ersten beizubehalten:
Dies kann auch mit dem
dplyr
Paket von Hadley Wickham erreicht werden.quelle
Ich bin kein Experte, aber das kann auch funktionieren,
quelle
nrow(dat) == 1
: Dann das ursprüngliche Datum erhalten bleibt.dat <- dat[-1, ]
hat funktioniert, aber mein Datenrahmen wurde zerstört und in einen anderen Typ geändert. Musste stattdessen verwenden,dat <- data.frame(dat[-1, ])
aber dies ist möglicherweise ein Sonderfall, da dieser Datenrahmen anfangs nur eine Spalte hatte.quelle