Ich habe Probleme mit Spaltennamen, die ein Interpunktionszeichen enthalten. diagnostizierte ich das Problem wie folgt:Interpunktionszeichen in Spaltennamen werden durch ..X ersetzt
file <- "./spam.data.txt"
columnNames <- c('word_freq_make',
'word_freq_address',
...
'word_freq_table',
'word_freq_conference',
'char_freq_;',
'char_freq_(',
'char_freq_[',
'char_freq_!',
'char_freq_$',
'char_freq_#',
'capital_run_length_average',
...)
spamd <- read.table(file, sep = "" , header = F, stringsAsFactors= F,
col.names = columnNames)
# First look
spamd$word_freq_85 # [1] 0 0 0 0 0 0 0 0 1 0 1 ...
spamd$char_freq_; # NULL
colnames(spamd)
Die Ausgabe von colnames()
ist:
[1] "word_freq_make" "word_freq_address" ...
[46] "word_freq_table" "word_freq_conference" "char_freq_." "char_freq_..1"
[51] "char_freq_..2" "char_freq_..3" "char_freq_..4" "char_freq_..5" "capital_run_length_average"
Das heißt, haben die Satzzeichen in Spaltennamen durch "..1" ersetzt," .. 2 "," ..3 ", ...
Warum also bitte?
EDIT FOLGENDE AKRUN Antwort:
Mit:
spamd <- read.table(file, sep = "" , header = F, stringsAsFactors= F,
col.names = columnNames, check.names = FALSE)
löst stattdessen die Umbenennung Problem. Das heißt, ergibt colnames()
jetzt:
[41] "word_freq_cs" "word_freq_meeting" "word_freq_original" "word_freq_project" "word_freq_re"
[46] "word_freq_edu" "word_freq_table" "word_freq_conference" "char_freq_;" "char_freq_("
[51] "char_freq_[" "char_freq_!" "char_freq_$"
Aber wenn ich spamd$char_freq_X
versuchen wobei X eine beliebige Satzzeichen noch NULL
ich. Also, wie bekomme ich Zugang zu diesen Spalten?
Dank
rtfm 'benutzen? Read.table' und'? Make.names' –
Ich verstehe nicht, was Sie sagen, sry. Ich bin neu bei R. – hartmut
Ich habe nur gesagt, dass dies ein dokumentiertes Verhalten ist, und Sie könnten das selbst gelesen haben, wenn Sie sich die Funktionsdokumentation angesehen haben. Dies ist verfügbar, indem Sie ein Fragezeichen (?) Gefolgt von dem Funktionsnamen in Ihrer R-Konsole eingeben. –