Ihr Problem ist zweifach. Zunächst einmal, als Neuling für R, sind Sie noch nicht an die Semantik gewöhnt, die erforderlich ist, um das zu tun, was Sie brauchen. Im Grunde, was Sie fordern, um zu tun ist:
- Erste, Identifizieren Sie, welche Aufträge stammen aus Online
- Zweite, erzeugen eine zufällige lat und lon für diese Aufträge
Um Elemente Ihres Datenrahmens zu identifizieren, die einem Kriterium entsprechen, verwenden Sie zunächst die Funktion which
. Somit, um die Zeilen in Ihrem Datenrahmen zu finden die Store Spalte gleich „Online“ haben, können Sie tun:
df[which(df$Store=="Online")]
Um den lat oder lon für eine bestimmte Zeile zu aktualisieren, müssen wir in der Lage zu Greife auf die Spalte zu. Um Werte einer bestimmten Spalte zu erhalten, verwenden wir $
. Um beispielsweise die Breitengradwerte für die Online-Aufträge zu erhalten, die Sie verwenden:
df$lat[which(df$Store=="Online")]
Großartig! Das Problem divergiert nun und nimmt an Komplexität zu. Möchten Sie für die neuen Werte einfache Werte generieren, um Ihre Demo zu erstellen, oder möchten Sie eine neue Logik erstellen, um in einer bestimmten Region räumliche Ergebnisse zu generieren? Sie geben an, dass Sie Datenpunkte in Deutschland selbst generieren möchten, dies zu bewerkstelligen, übersteigt jedoch den Rahmen dieser Frage. Fürs Erste betrachten wir das einfache Beispiel der Erzeugung von Werten in einer begrenzten Box und aktualisieren Ihre data.frame
entsprechend.
Um ganzzahlige Werte in einem bestimmten Bereich zu erzeugen, können wir die sample
Funktion verwenden. Unter der Annahme, dass Sie lat
Werte im Bereich von 45 und 55 und lon
Werte im Bereich von 9 bis 14 wollen würden wir folgendes tun:
df$lat[which(df$Store=="Online")]<-sample(45:55,length(which(df$Store=="Online")))
df$lon[which(df$Store=="Online")]<-sample(9:14,length(which(df$Store=="Online")))
diesen Code lesen, haben wir die lat
Werte in df
aktualisieren, die sind "Online" -Bestellungen mit einem Vektor von Zufallszahlen aus 48:52, das ist die richtige Länge (die Anzahl der "Online" -Bestellungen).
Wenn Sie eine höhere Dezimalzahl wünschen, können Sie eine ähnliche Logik mit der runif
-Funktion verwenden, die von der gleichmäßigen Verteilung und round
abfragt, um die entsprechende Genauigkeit zu erhalten. Viel Glück!
Kümmert es dich, ob die Punkte tatsächlich in Deutschland sind? Sie können den Bereich von lat/lon, der zu einer Box im ganzen Land passt, verwenden und 'sample' verwenden, um zufällige Werte in diesem Bereich zu erhalten. Oder Sie schreiben eine Funktion und lassen sie zufälliges Lat/Lon in einem Kreisradius um Ihre bekannten Gebiete (zB 100km von München) zurückgeben. –
Vielen Dank für die Antwort! Es wäre sehr hilfreich, wenn es in Deutschland gäbe. Weil der Händler sich in Deutschland niederließ. Ich hatte eine ähnliche Idee wie du, aber ich habe keine Ahnung, wie ich das in R programmieren soll (ich bin ein Neuling). Und wenn ich diese Zufallszahlen erzeugen kann, wie kann ich R nun das diese Nummern im Online-Shop enthalten? – Marre
http://www.dpi.inpe.br/gilberto/tutorials/software/R-contrib/sp/html/spsample.html – MichaelChirico