[Rstudio] Data frame met even nummers maken

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Tweakers,

Ik heb de volgende opdracht gekregen die ik zou moeten oplossen met R studio, op basis van een zelfgemaakt csv file met 500 tweets genaamd tweets.csv.:

Creeer een dataframe dat alleen de tweets met een even ID nummer bevat, gebruik makend van een FOR-loop en IFELSE construct.

Wat andere feiten:
Alle tweets hebben een id van 18 cijfers, waarbij ik dus alleen het laatste getal nodig heb om te bepalen of het een even of oneven getal betreft.
Ik heb geprobeerd de nummers eerst als integer neer te zetten
My_columns is een al gecreeerd dataframe


Tot nu toe heb ik het volgende neergezet, maar ik heb eigenlijk geen idee of ik in de goede richting zit (id is de 6e kolom):

substr(my_columns[1,6],18,18)
as.integer(substr(my_columns[1,6],18,18))
eventweets <- do.call("rbind", lapply(t_stream, as.data.frame))

for (id in eventweets) (1:500)
if ((num %% 2) == 1)
else

Alvast hartelijk dank voor jullie hulp :*)

Alle reacties


Acties:
  • 0 Henk 'm!

  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Ik ken R studio niet, maar als ik het behandel als pseudo code dan klopt het toch gewoon?
Verwijderd schreef op dinsdag 21 februari 2017 @ 11:51:
for (id in eventweets) (1:500)
if ((id.num %% 2) == 1)
else
Dit checked gewoon of je num in id even of oneven is (ik zou het hele stuk van laatste getal pakken eruitstrippen of je moet echt problemen in R Studio ondervinden, KISS-principe)

Als je nu gewoon voor je else en na je if iets zet wat je id in je dataframe zet dan ben je er (althans in pseudo code).

Maar even wat random opmerkingen, ik zou in principe nooit het laatste cijfer pakken of het moet anders echt niet werken (of er is echt high-performance nodig) het maakt het alleen maar complex om te lezen wat het moet doen.
En als je al het laatste getal pakt, zorg dan ook dat je het laatste getal pakt en niet het 18e getal. Ik ken twitter niet inhoudelijk, maar ik ga ervanuit dat niet alle tweets een id van 18 cijfers hebben, dat er ook met 17 cijfers zullen zijn (oude tweets) en dat er tweets gaan komen met 19 cijfers (in de toekomst). Oftewel je hebt een grote kans dat het gaat breken en waarom breekt het dan, omdat je een slordige overbodige implementatie hebt qua laatste getal pakken die waarschijnlijk nutteloos is omdat je ook gewoon de modulo van een groot getal kan pakken.

Acties:
  • 0 Henk 'm!

  • RobLemmens
  • Registratie: Juni 2003
  • Laatst online: 14:28
met which kun je de If over een vector laten lopen, de selectie wordt dan:

x <- 1:100
which(x %% 2 == 0)

wel erg vaag om dat uitgerekend in R op te lossen met if en foreach