Hallo miteinander
Ich bin "Neuling" und brauche etwas Hilfe... ich habe eine Tabelle mit Firmendaten, welche ich in klein, mittlere und grosse Unternehmen unterteilen will.
Daten sehen so aus:
Firma; Anzahl Mitarbeiter
AA; 20
BB; 5
CC; 77
etc.
ich wollte nun eine Spalte erstellen, worin steht: "klein 1 - 10", "mittel 11 - 99", gross 100 -".
Der Code sieht so aus:
data %>%
select(`Number of employees`) %>%
mutate(
Sizes = case_when(
`Number of employees` = 0 - 10 ~ "Klein(1 to 10)",
`Number of employees` = 11 - 100 ~ "Mittel (11 to 100)",
`Number of employees` = 101 - 1000 ~ "Gross (über 100)"
))
Leider kriege ich die Fehlermeldung:
Error: LHS of case 1 (`0 - 10`) must be a logical vector, not a double Vector
mein Feld hat dbl Format und hat nur Zahlen drin. Muss ich das Format ändern oder hab ich einen Fehler drin?
Könnt ihr mir weiterhelfen?
DANKE!
Case_when: logical not double vector
Re: Case_when: logical not double vector
Hallo!
Wäre das nicht viel einfacher mit cut zu erledigen?
also für Dich sowas in der Art von
LG,
Bernhard
Wäre das nicht viel einfacher mit cut zu erledigen?
Code: Alles auswählen
NoEmployees <- c(0, 10, 11, 50, 100, 1000, 10)
cut(NoEmployees, breaks=c(-1, 10.5, 100.5, Inf), labels=c("klein", "mittel", "groß"))
also für Dich sowas in der Art von
Code: Alles auswählen
data$Sizes <- cut(data$`Number of employees`, breaks=c(-1, 10.5, 100.5, Inf),
labels=c("klein (1-10)", "mittel (11-100)", "groß (> 100)"))
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Case_when: logical not double vector
Hey! Danke, hat funktioniert. lg Karo
Re: Case_when: logical not double vector
Noch ein Hinweis:
beinhaltet eine Zuweisung: "=", ein logischer Vergleich ginge mit "==".
Ansonsten ist cut natürlich viel schöner, weil nicht aus dem tidyverse
Grüße
Ruedi
Code: Alles auswählen
`Number of employees` = 0 - 10 ~ "Klein(1 to 10)",
Ansonsten ist cut natürlich viel schöner, weil nicht aus dem tidyverse
Grüße
Ruedi
fortune(111)
Re: Case_when: logical not double vector
Hallo Ruedi,
Spaß beiseite, ich hab mal eine Programmiersprache gesehen, ich glaube es war Haskell, da kann man echt in Unicode programmieren. Da ließe sich eine Variable λ und eine Funktion dann auch '∈' nennen oder '⊂' oder '⊆'.
LG,
Bernhard
Ein Einzelwert kann ja nicht gleich einem Intervall sein, daher wäre '==' kein logischer, sondern ein unlogischer Vergleich
Spaß beiseite, ich hab mal eine Programmiersprache gesehen, ich glaube es war Haskell, da kann man echt in Unicode programmieren. Da ließe sich eine Variable λ und eine Funktion dann auch '∈' nennen oder '⊂' oder '⊆'.
Ansonsten ist cut natürlich viel schöner, weil nicht aus dem tidyverse
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Case_when: logical not double vector
und wenn es denn partout tidyverse sein soll, wäre ein fct_collpase innerhalb des mutate eine gute Idee.
Grüße
Ruedi
Grüße
Ruedi
fortune(111)
Re: Case_when: logical not double vector
@Ruedi Coole Funktion, die ich bisher nicht kannte. Was ich gerade über das forcats package gelesen habe gefällt mir sehr gut. Aber wenn ich über fct_collapse lese, dann ist das für factors, nicht für numerischen Input. Karos Mitarbeiterzahlen dürften integer sein?
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte