Je souhaite sélectionner des sessions de clients spécifiques basées sur une date, mais je ne sais pas comment gérer cela. J'ai un DF avec toutes les sessions de clients et je veux faire deux nouveaux DF: une avec la première session de chaque client et une avec la deuxième session de chaque client. Quelle session est la première ou la seconde est basée à la date. Les sessionsID sont des nombres générés aléatoires, tout comme l'ID client.
Mes données ressemblent à: p> Je veux avoir une sortie pour le DF avec seulement la première session comme : p> et pour le DF avec les deuxième sessions telles que: p>
4 Réponses :
A donne, p> donne, p> baser code> approche, mydata <- read.table(text="Clientid Sessionid Date
1 95738 13-03-2019
1 61718 18-03-2019
1 81289 19-03-2019
1 89239 20-03-2019
2 91298 13-02-2019
2 12794 15-02-2019
2 10083 16-02-2019
3 90138 03-02-2019
3 23128 06-02-2019",header=T)
Lorsque j'utilise ce code: Index <- Commande (MyData [ 1]) [! Dupliqué (Trier (MyData [ 1]))] # Trouve la première occurrence. Je reçois cette erreur: erreur dans [. Data.frame code> (x, i): colonnes non définies sélectionnées
J'ai nommé les fausses données mydata b>. Avez-vous changé avec le vôtre?
Ouais j'ai fait. Je l'ai également essayé avec un sous-ensemble de mes données avec seulement la colonne client, session et date, mais je reçois toujours l'erreur.
Cela n'a aucun sens. MyData B> se produit deux fois dans la soluion. Premièrement, au début commande (mydata ... i>, et deuxième à l'intérieur Trier (myData ... I> Mais vous avez dit que vous l'avez fait. Avez-vous essayé de le courir Avec les fausses données que j'ai créées?
Ouais ça marche bien, mais quand je veux l'appliquer à mes données, cela ne fonctionne pas. La seule différence avec mes données est que la colonne ID de session est un personnage, mais je ne pense pas que le problème est vrai?
Nous ne faisons rien avec la colonne Session ID i> ici.
Je pense que j'ai peut-être le problème. Mon identifiant client est également des chiffres générés aléatoires et ne commencent pas par 1. Cela pourrait-il causer le problème?
Ceci prend tout i em> la rangée d'identifiants et les répertorie dans des cadres de données. dat <- structure(list(Client.id = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 3L,
3L), Session.id = c(95738L, 61718L, 81289L, 89239L, 91298L, 12794L,
10083L, 90138L, 23128L), Date = c("13-03-2019", "18-03-2019",
"19-03-2019", "20-03-2019", "13-02-2019", "15-02-2019", "16-02-2019",
"03-02-2019", "06-02-2019")), class = "data.frame", row.names = c(NA,
-9L))
Je pense que vous pouvez utiliser cette fonction: date_fun (df, 1) p> date_fun (df, 2) < / p> n_slice code> est le numéro de session p> p>
Si j'exécute ce code: date_fun <-function (myData, 1) {résultat <-MyData%>% group_by (client)%>%>% arrangez (clientide, date)%>% SLICE (1) Retour (résultat)} Je reçois Ces erreurs: Erreur: constante numérique inattendue dans "Date_fun <-Function (MyData, 1" (MyData, 1 "": Aucune fonction à revenir de, sautant à l'erreur de niveau supérieur: inattendu '}' in "}"
C'est parce que vous avez supprimé N_SLICE de fonction (DF, N_SLICE). Mais ici, tranche (n_slice), vous avez laissé N_SLICE. La fonction fonctionne bien si vous l'appelez comme i Date_fun (DF, 1) ou Date_fun (DF, 2)
Voici une approche de base r: maintenant Vous pouvez maintenant sous-ensemble code> les données de la section de la session que vous souhaitez: p> df <- structure(list(Clientid = c(8972137L, 8972137L, 8972137L, 8972137L,
56121278L, 56121278L, 56121278L, 13482932L, 13482932L), Sessionid = c(95738L,
61718L, 81289L, 89239L, 91298L, 12794L, 10083L, 90138L, 23128L
), Date = c("13-03-2019", "18-03-2019", "19-03-2019", "20-03-2019",
"13-02-2019", "15-02-2019", "16-02-2019", "03-02-2019", "06-02-2019"
)), class = "data.frame", row.names = c(NA, -9L))