neuer Dataframe

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
Tengo
Beiträge: 11
Registriert: Do Mär 05, 2020 11:45 am

neuer Dataframe

Beitrag von Tengo »

Hallo liebe Community,

Forum.xlsx
(9.3 KiB) 28-mal heruntergeladen
ich habe folgende Datensatz im Excel (als besipiel erstellt), nur ich möchte ,dass im Weiteren daraus ein Datensatz generieren, wo ich nur die am häufigsten vorkommenden Länder (Somalia, Syrien, Afghanistan) zu stehen habe und die anderen z.B als sonstiges bezeichet und zusammen gefasst wird.

ich habe es mit >summarize und filter versucht aber bin nicht weiter gekommen, könnte mir vllt jemand dabei Helfen ?
Vielen lieben Dank im Voraus!

LG
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: neuer Dataframe

Beitrag von jogo »

Hallo Tengo,

willkommen im Forum!
Kannst Du uns bitte zeigen, mit welchem Code Du die Excel-Tabelle in R einliest?

Gruß, Jörg
ruedi_br
Beiträge: 159
Registriert: Do Mär 01, 2018 3:53 pm

Re: neuer Dataframe

Beitrag von ruedi_br »

nächste Frage: allgemein die drei häufigsten Länder?
Grüße
Ruedi
fortune(111)
Tengo
Beiträge: 11
Registriert: Do Mär 05, 2020 11:45 am

Re: neuer Dataframe

Beitrag von Tengo »

Hallo Jörg, Hallo Rudi,

erstmal danke für so eine schnelle Ruckmeldung.

Code: Alles auswählen

Forum <- read_excel("C:/Users/User/Desktop/R sacdeli tabelebi/zweite Runde/Forum.xlsx")
mit dem Befehl füge ich Excel in R...(oder war etwas anderes gemeint?)

und ja genau in diesem Fall die drei Länder, weil die quasi am Häufigsten vorkommen (im original Datensatz sieht es bisschen anders aus)

LG Tengo
Zuletzt geändert von jogo am Do Mär 05, 2020 3:14 pm, insgesamt 2-mal geändert.
Grund: Formatierung verbessert. http://forum.r-statistik.de/viewtopic.php?f=20&t=29
bigben
Beiträge: 2778
Registriert: Mi Okt 12, 2016 9:09 am

Re: neuer Dataframe

Beitrag von bigben »

Wenn man beim Einlesen darauf achtet, dass die Länder nicht als factor, sondern als character eingelesen werden, dann geht es z. B. so:

Code: Alles auswählen

ctry <- structure(list(Herkunftsland = c("Syrien", "Pakistan", "Syrien", 
                                         "Syrien", "Syrien", "Somalia", "Iran", "Guinea", "Guinea", "Irak", 
                                         "Guinea", "Senegal", "Neuguinea", "Irak", "Afghanistan", "Syrien", 
                                         "Syrien", "Irak", "Syrien", "Iran", "Guinea", "Afghanistan", 
                                         "Irak", "Syrien", "Somalia", "Somalia", "Syrien", "Syrien", "Afghanistan", 
                                         "Syrien", "Afghanistan", "Syrien", "Afghanistan", "Afghanistan", 
                                         "Iran", "Iran", "Somalia", "Afghanistan", "Afghanistan", "Guinea", 
                                         "Afghanistan", "Somalia", "Syrien", "Irak", "Somalia", "Somalia", 
                                         "Somalia", "Somalia", "Somalia", "Somalia", "Somalia", "Somalia", 
                                         "Somalia", "Irak", "Somalia", "Somalia", "Syrien", "Syrien"), 
                       Attest = c("nein", "nein", "nein", "nein", "nein", "nein", 
                                  "nein", "nein", "nein", "nein", "nein", "nein", "nein", "nein", 
                                  "nein", "nein", "nein", "nein", "nein", "nein", "nein", "nein", 
                                  "nein", "nein", "nein", "nein", "nein", "nein", "nein", "nein", 
                                  "nein", "nein", "nein", "nein", "nein", "nein", "nein", "nein", 
                                  "nein", "nein", "nein", "nein", "nein", "nein", "nein", "ja", 
                                  "nein", "nein", "nein", "ja", "nein", "ja", "ja", "nein", 
                                  "ja", "ja", "nein", "nein"), Termine = c(3L, 3L, 2L, 3L, 
                                                                           2L, 3L, 1L, 1L, 1L, 2L, 1L, 3L, 3L, 5L, 1L, 3L, 1L, 2L, 5L, 
                                                                           4L, 3L, 3L, 1L, 1L, 3L, 2L, 1L, 1L, 6L, 1L, 3L, 1L, 3L, 2L, 
                                                                           1L, 7L, 7L, 2L, 5L, 1L, 2L, 6L, 4L, 3L, 1L, 20L, 2L, 2L, 
                                                                           4L, 16L, 2L, 3L, 3L, 7L, 11L, 6L, 3L, 4L)), .Names = c("Herkunftsland", 
                                                                                                                                  "Attest", "Termine"), class = "data.frame", row.names = c(NA, 
                                                                                                                                                                                            -58L))

sonstige <- names(which(table(ctry$Herkunftsland) < 3))
print(sonstige)
ctry$Land <- ifelse(ctry$Herkunftsland %in% sonstige, "Sonstige", ctry$Herkunftsland)
head(ctry, 10)
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Tengo
Beiträge: 11
Registriert: Do Mär 05, 2020 11:45 am

Re: neuer Dataframe

Beitrag von Tengo »

Hallo Bernhard,

es hat alles wünderbar geklappt, habe halt 3 an für mich relevanten Zahlen angepasst.

vielen, vielen Dank!

LG
Tengo
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: neuer Dataframe

Beitrag von jogo »

Hallo Tengo,

oder die drei häufigsten:

Code: Alles auswählen

library("readxl")
### setwd(...)
Forum <- read_excel("Forum.xlsx")

N <- names(sort(table(Forum$Herkunftsland), decr=TRUE))[1:3]
Forum$l <- ifelse(Forum$Herkunftsland %in% N, Forum$Herkunftsland, "sonst")
Gruß, Jörg
Tengo
Beiträge: 11
Registriert: Do Mär 05, 2020 11:45 am

Re: neuer Dataframe

Beitrag von Tengo »

Hallo Jörg,

Vielen Dank!

LG
Tengo
Antworten