Zum BeispielWie kann ich die Konvertierung von Zeichen in Faktoren stoppen?
chr <- c("a", "b", "c")
intgr <- c(1, 2, 3)
str(chr)
str(base::merge(chr,intgr, stringsAsFactors = FALSE))
gibt:
> str(base::merge(chr,intgr, stringsAsFactors = FALSE))
'data.frame': 9 obs. of 2 variables:
$ x: Factor w/ 3 levels "a","b","c": 1 2 3 1 2 3 1 2 3
$ y: num 1 1 1 2 2 2 3 3 3
ich ursprünglich dachte, es etwas mit dem zu tun hat, wie merge Argumente in Datenrahmen nötigt. Ich dachte jedoch, dass das Hinzufügen des Arguments stringsAsFactors = FALSE
das Standard-Zwangsverhalten von char -> factor außer Kraft setzen würde, aber das funktioniert nicht.
EDIT: Sie folgendermaßen vorgehen gibt mir erwartetes Verhalten:
options(stringsAsFactors = FALSE)
str(base::merge(chr,intgr))
das ist:
> str(base::merge(chr,intgr))
'data.frame': 9 obs. of 2 variables:
$ x: chr "a" "b" "c" "a" ...
$ y: num 1 1 1 2 2 2 3 3 3
aber das ist nicht ideal, da sie die globale stringsAsFactors
Einstellung ändern.
Was bedeutet 'Klasse (chr)' und 'Klasse (intgr)' Sie zeigen? Ich habe 'stringsAsFactors' noch nie mit' merge() 'verwendet. –
'> Klasse (chr) [1]" Zeichen "' und '> Klasse (intgr) [1]" numeric' – Alex
Ich sah, dass Link @ Hack-R aber es gilt hier nicht: im Fall referenziert die Person verbindet zwei Datenrahmen 'x, y' mit einem gemeinsamen Spaltennamen, außer einer ist ein Faktor und der andere ein Zeichen. Hier mache ich das Kreuzprodukt. – Alex