Jacqueline Oehri
2013-Jun-26 09:36 UTC
[R] 2nd question about adding an additional variable along certain criteria in a dataframe
Hello everybody,
I have a question concerning the work with my dataframe and i hope some of
you can help me out:
I have A data frame called "WWA" that looks like the
"testframe"
underneath:
Additionally, i have a testvector, containing coordinate IDs:
testvector <-c("503146","551154","557154")
> testframe:
testcoordID testcommunity testaltitude testSpeciesName
1 503146 Bournes 523.2 Bellis perennis
2 503146 Bournes 321.5 Cynosurus cristatus
3 557154 Bournes 654.1 Festuca pratensis
4 557154 Aigle 938.6 Bellis perennis
5 569226 Aigle 401.3 Bellis perennis
6 599246 Aigle 765.9 Prunella vulgaris
I added an additional collumn:
> testframe$testNCCR_land_use <- c("to be assigned")
> testframe
testcoordID testcommunity testaltitude testSpeciesName
testNCCR_land_use
1 503146 Bournes 523.2 Bellis
perennis to be assigned
2 503146 Bournes 321.5 Cynosurus cristatus to
be assigned
3 557154 Bournes 654.1 Festuca pratensis
to be assigned
4 557154 Aigle 938.6 Bellis
perennis to be assigned
5 569226 Aigle 401.3 Bellis
perennis to be assigned
6 599246 Aigle 765.9 Prunella
vulgaris to be assigned
-->QUESTION:
Now I need to compute a function, that checks for the coordID in every
row, if the respective coordinateID is contained in the test-vector or not!
1) If the coordID in the row is contained in the testvector --> It should
assign the name "gfgh" into the "testNCCR-land_use_collumn to
this row!
2)If the coordID in the row is not contained in the testvector--> there
should be done nothing and there will still be "to be assigned" in the
testNCCR_land_use column.
I tried something like this but it didnt work: Can somebody help me out?
It says: "Error, trial to use a non-function" or something like this..
for (i in 1:6(testframe)){
+ if ((length(intersect(testvector, testframe$testcoordID[i]))) == 1){
+ testframe$testNCCR_land_use[i]<-("testgfgh")}
+ }
Fehler: Versuch eine Nicht-Funktion anzuwenden
Thank you veery much for your help!!!!
(I built the testframe up like this:
testcoordID <-
c(as.integer("503146"),as.integer("503146"),as.integer("557154"),as.integer("557154"),as.integer("569226"),as.integer("599246"))
testcommunity
<-factor(c("Bournes","Bournes","Bournes",
"Aigle", "Aigle",
"Aigle"))
testaltitude <- c(523.2,321.5,654.1,938.6,401.3,765.9)
testSpeciesName <-c( "Bellis perennis",
"Cynosurus cristatus",
"Festuca pratensis",
"Bellis perennis",
"Bellis perennis",
"Prunella vulgaris")
testframe <- data.frame(testcoordID,testcommunity,testaltitude,
testSpeciesName)
[[alternative HTML version deleted]]
Sarah Goslee
2013-Jun-26 15:49 UTC
[R] 2nd question about adding an additional variable along certain criteria in a dataframe
Hi, Using your testframe and testvector (and thank you for the convenient reproducible example): # I used NA instead of "to be assigned" testframe <- data.frame(testframe, landuse = "NA", stringsAsFactors=FALSE) # checks membership in testvector testframe[testframe$testcoordID %in% testvector, "landuse"] <- "gfgh" Sarah On Wed, Jun 26, 2013 at 5:36 AM, Jacqueline Oehri <jacqueline.oehri at gmail.com> wrote:> Hello everybody, > > I have a question concerning the work with my dataframe and i hope some of > you can help me out: > > I have A data frame called "WWA" that looks like the "testframe" > underneath: > > Additionally, i have a testvector, containing coordinate IDs: > testvector <-c("503146","551154","557154") > >> testframe: > > testcoordID testcommunity testaltitude testSpeciesName > 1 503146 Bournes 523.2 Bellis perennis > 2 503146 Bournes 321.5 Cynosurus cristatus > 3 557154 Bournes 654.1 Festuca pratensis > 4 557154 Aigle 938.6 Bellis perennis > 5 569226 Aigle 401.3 Bellis perennis > 6 599246 Aigle 765.9 Prunella vulgaris > > I added an additional collumn: > >> testframe$testNCCR_land_use <- c("to be assigned") >> testframe > > testcoordID testcommunity testaltitude testSpeciesName > testNCCR_land_use > 1 503146 Bournes 523.2 Bellis > perennis to be assigned > 2 503146 Bournes 321.5 Cynosurus cristatus to > be assigned > 3 557154 Bournes 654.1 Festuca pratensis > to be assigned > 4 557154 Aigle 938.6 Bellis > perennis to be assigned > 5 569226 Aigle 401.3 Bellis > perennis to be assigned > 6 599246 Aigle 765.9 Prunella > vulgaris to be assigned > > > > -->QUESTION: > Now I need to compute a function, that checks for the coordID in every > row, if the respective coordinateID is contained in the test-vector or not! > > 1) If the coordID in the row is contained in the testvector --> It should > assign the name "gfgh" into the "testNCCR-land_use_collumn to this row! > > 2)If the coordID in the row is not contained in the testvector--> there > should be done nothing and there will still be "to be assigned" in the > testNCCR_land_use column. > > I tried something like this but it didnt work: Can somebody help me out? > It says: "Error, trial to use a non-function" or something like this.. > > > for (i in 1:6(testframe)){ > + if ((length(intersect(testvector, testframe$testcoordID[i]))) == 1){ > + testframe$testNCCR_land_use[i]<-("testgfgh")} > + } > Fehler: Versuch eine Nicht-Funktion anzuwenden > > > Thank you veery much for your help!!!! > > > > (I built the testframe up like this: > > testcoordID <- > c(as.integer("503146"),as.integer("503146"),as.integer("557154"),as.integer("557154"),as.integer("569226"),as.integer("599246")) > testcommunity <-factor(c("Bournes","Bournes","Bournes", "Aigle", "Aigle", > "Aigle")) > testaltitude <- c(523.2,321.5,654.1,938.6,401.3,765.9) > testSpeciesName <-c( "Bellis perennis", > "Cynosurus cristatus", > "Festuca pratensis", > "Bellis perennis", > "Bellis perennis", > "Prunella vulgaris") > testframe <- data.frame(testcoordID,testcommunity,testaltitude, > testSpeciesName) > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.-- Sarah Goslee http://www.stringpage.com http://www.sarahgoslee.com http://www.functionaldiversity.org