[R] loop searching the id corresponding to the given index (timestamp)

Rui Barradas ruipbarradas at sapo.pt
Wed Jul 18 19:37:16 CEST 2012


Hello,

Try the following.

for(i in 1:dim(diveData_2008)[1]){
	# Which dive is this observation from
	thisIndex <- as.character(index(diveData_2008[i,]))
thisIndex <- as.POSIXct(thisIndex)
	dive_id   <- diveCond_all$dive_id[diveCond_all$timestamp == thisIndex]
	#
	[... etc ...]

And the same in the 2009 loop.

I think this is it.

Good luck,

Rui Barradas

Em 18-07-2012 14:47, Yolande Tra escreveu:
> Hello,
>
> I have the following loop for two data sets: diveData_2008 and
> diveData_2009. It uses two other data: diveCond_all and fishTable. The
> problem is at the point to identify the dive_id for the given index (index
> is timestamp). It keeps on saying
> for the1st loop
> Error in fishReport$dive_id[i] <- dive_id : replacement has length zero
> for the 2nd loop
> Error in fishReport$dive_id[i + j] <- dive_id :
>    replacement has length zero
>
> That is where the only problem resides.
> Here is the code and below are the first 15 lines of data
>
> N <- dim(diveData_2009)[1] + dim(diveData_2008)[1]
> fishReport <- data.frame(matrix(0, nrow=N, ncol=11))
> names(fishReport) <- c("dive_id", "site", "section", "level", "transect",
> "depth", "species", "count", "size")
> for(i in 1:dim(diveData_2008)[1]){
>                  # Which dive is this observation from
>                  thisIndex <- as.character(index(diveData_2008[i,]))
>                  dive_id <-
> diveCond_all$dive_id[diveCond_all$timestamp==thisIndex]
>                  cat(dive_id, thisIndex, "\n")
>                  # Store the pertinent data in the fish report data.frame
>                  fishReport$dive_id[i]     <- dive_id
>                  fishReport$site[i]                             <-
> diveData_2008[i,"site"]
>                  fishReport$level[i]                          <-
> diveData_2008[i,"level"]
>                  fishReport$section[i]     <- 0
>                  fishReport$transect[i]   <-
> as.numeric(diveData_2008[i,"TRANSECT"])
>                  fishReport$depth[i]                        <-
> as.numeric(diveData_2008[i,"depth"])
>                  fishReport$species[i]     <-
> fishTable$name_2009[fishTable$name_2008==as.character(diveData_2008[i,"species"])
> ][1]
>                  fishReport$count[i]                        <-
> as.numeric(diveData_2008[i,"count"])
>                  fishReport$size[i]                            <-
> as.numeric(diveData_2008[i,"size"])
>        fishReport$visibility[i]                              <-
> as.numeric(diveData_2008[i,"VIS_M"])
>        fishReport$swell[i]   <-as.numeric(diveData_2008[i,"swell_URSKI"])
> }
> j<-i
> ## The 2009 dives
> for(i in i+1:dim(diveData_2009)[1]){
>                  thisIndex <- as.character(index(diveData_2009[i,]))
>                  dive_id <-
> diveCond_all$dive_id[diveCond_all$timestamp==thisIndex]
>                  cat(dive_id, thisIndex, "\n")
>                  fishReport$dive_id[i+j]                 <- dive_id
>                  fishReport$site[i+j]                         <- "Hopkins"
>                  fishReport$level[i+j]                      <-
> diveData_2009[i,"level"]
>                  fishReport$transect[i+j]               <-
> as.numeric(diveData_2009[i,"TRANSECT"])
>                  fishReport$depth[i+j]                                    <-
> as.numeric(diveData_2009[i,"depth"])
>                  fishReport$species[i+j]                 <-
> diveData_2009[i,"species"]
>                  fishReport$count[i+j]                    <-
> as.numeric(diveData_2008[i,"count"])
>                  fishReport$size[i+j]                        <-
> as.numeric(diveData_2009[i,"size"])
>        fishReport$visibility[i+j]      <-
> as.numeric(diveData_2008[i,"VIS_M"])
>                  }
>
>
> diveData_2008 (first 15 lines)
> structure(c(" 1", " 1", " 1", " 1", " 1", " 1", " 1", " 1", " 1",
> " 2", " 2", " 2", " 2", " 2", " 2", "8/6/2008", "8/6/2008", "8/6/2008",
> "8/6/2008", "8/6/2008", "8/6/2008", "8/6/2008", "8/6/2008", "8/6/2008",
> "8/6/2008", "8/6/2008", "8/6/2008", "8/6/2008", "8/6/2008", "8/6/2008",
> "8:49", "8:49", "8:49", "8:49", "8:49", "8:49", "8:49", "8:49",
> "8:49", "10:03", "10:03", "10:03", "10:03", "10:03", "10:03",
> "S. OYT", "S. atrovirens", "S. atrovirens", "S. atrovirens",
> "O. pictus", "C. nicholsii", "C. nicholsii", "D. vacca", "No organisms",
> "S. OYT", "S. atrovirens", "S. atrovirens", "S. atrovirens",
> "S. chrysomelas", "O. pictus", "  15", "   1", "   1", "   1",
> "   1", "   1", "   1", "   1", "   1", "   1", "   1", "   1",
> "   1", "   1", "   1", " 6", "23", "27", "29", " 8", " 8", " 9",
> "18", NA, " 6", "23", "28", "35", "32", " 8", "Hopkins", "Hopkins",
> "Hopkins", "Hopkins", "Hopkins", "Hopkins", "Hopkins", "Hopkins",
> "Hopkins", "Hopkins", "Hopkins", "Hopkins", "Hopkins", "Hopkins",
> "Hopkins", "15", "15", "15", "15", "15", "15", "15", "15", "15",
> "10", "10", "10", "10", "10", "10", "B", "B", "B", "B", "B",
> "B", "B", "B", "M", "B", "B", "B", "B", "B", "B", " 1", " 1",
> " 1", " 1", " 1", " 1", " 1", " 1", " 1", " 2", " 2", " 2", " 2",
> " 2", " 2", " 3.5", " 3.5", " 3.5", " 3.5", " 3.5", " 3.5", " 3.5",
> " 3.5", " 3.5", " 3.5", " 3.5", " 3.5", " 3.5", " 3.5", " 3.5",
> "13.9", "13.9", "13.9", "13.9", "13.9", "13.9", "13.9", "13.9",
> "13.9", "13.9", "13.9", "13.9", "13.9", "13.9", "13.9", "1.0686708",
> "1.0686708", "1.0686708", "1.0686708", "1.0686708", "1.0686708",
> "1.0686708", "1.0686708", "1.0686708", "1.1111950", "1.1111950",
> "1.1111950", "1.1111950", "1.1111950", "1.1111950"), .indexCLASS =
> c("POSIXct",
> "POSIXt"), tclass = c("POSIXct", "POSIXt"), .indexTZ = "", tzone = "",
> class = c("xts",
> "zoo"), index = structure(c(1218026940, 1218026940, 1218026940,
> 1218026940, 1218026940, 1218026940, 1218026940, 1218026940, 1218026940,
> 1218031380, 1218031380, 1218031380, 1218031380, 1218031380, 1218031380
> ), tzone = "", tclass = c("POSIXct", "POSIXt")), .Dim = c(15L,
> 13L), .Dimnames = list(NULL, c("dive_id", "date", "time", "species",
> "count", "size", "site", "depth", "level", "TRANSECT", "VIS_M",
> "TEMP_C", "swell_URSKI")))
> diveData_2009 (first 15 lines)
> structure(c("62", "62", "62", "62", "62", "62", "62", "62", "62",
> "62", "62", "62", "62", "62", "62", "10/12/2009", "10/12/2009",
> "10/12/2009", "10/12/2009", "10/12/2009", "10/12/2009", "10/12/2009",
> "10/12/2009", "10/12/2009", "10/12/2009", "10/12/2009", "10/12/2009",
> "10/12/2009", "10/12/2009", "10/12/2009", "12:44", "12:44", "12:44",
> "12:44", "12:44", "12:44", "12:44", "12:44", "12:44", "12:44",
> "12:44", "12:44", "12:44", "12:44", "12:44", "E. lateralis",
> "E. lateralis", "E. lateralis", "E. lateralis", "O. pictus",
> "S. OYT", "S. OYT", "S. atrovirens", "S. atrovirens", "S. atrovirens",
> "S. atrovirens", "S. carnatus", "S. carnatus", "S. carnatus",
> "S. carnatus", " 2", " 1", " 1", " 1", " 1", " 3", " 1", " 3",
> " 2", " 1", " 1", " 1", " 2", " 1", " 1", "15", "22", "25", "27",
> " 4", " 6", " 8", " 5", "20", "23", "25", " 5", "20", "26", "30",
> "Hopkins", "Hopkins", "Hopkins", "Hopkins", "Hopkins", "Hopkins",
> "Hopkins", "Hopkins", "Hopkins", "Hopkins", "Hopkins", "Hopkins",
> "Hopkins", "Hopkins", "Hopkins", "15", "15", "15", "15", "15",
> "15", "15", "15", "15", "15", "15", "15", "15", "15", "15", "B",
> "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
> "B", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1",
> "1", "1", "1", "4.0000", "4.0000", "4.0000", "4.0000", "4.0000",
> "4.0000", "4.0000", "4.0000", "4.0000", "4.0000", "4.0000", "4.0000",
> "4.0000", "4.0000", "4.0000"), class = c("xts", "zoo"), .indexCLASS =
> c("POSIXct",
> "POSIXt"), tclass = c("POSIXct", "POSIXt"), .indexTZ = "", tzone = "",
> index = structure(c(1255365840,
> 1255365840, 1255365840, 1255365840, 1255365840, 1255365840, 1255365840,
> 1255365840, 1255365840, 1255365840, 1255365840, 1255365840, 1255365840,
> 1255365840, 1255365840), tzone = "", tclass = c("POSIXct", "POSIXt"
> )), .Dim = c(15L, 11L), .Dimnames = list(NULL, c("dive_id", "date",
> "time", "species", "count", "size", "site", "depth", "level",
> "TRANSECT", "VIS_M")))
> diveCond_all (first 15 lines)
> structure(list(dive_id = structure(1:15, .Label = c(" 1", " 2",
> " 3", " 4", " 5", " 6", " 7", " 8", " 9", "10", "11", "12", "13",
> "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24",
> "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35",
> "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46",
> "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57",
> "58", "59", "60", "61", "62", "63", "64", "65", "66", "67", "68",
> "69", "70", "71", "72", "73", "74", "75", "76", "77", "78", "79",
> "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", "90",
> "91", "92", "93", "94", "95", "96", "97"), class = "factor"),
>      timestamp = structure(c(1218026940, 1218031380, 1218032700,
>      1218202920, 1218207180, 1218213720, 1218478320, 1218478320,
>      1218463800, 1218463800, 1218466860, 1218467760, 1218634260,
>      1218638100, 1218639720), class = c("POSIXct", "POSIXt"), tzone = ""),
>      visability = structure(c(5L, 5L, NA, 6L, NA, NA, NA, NA,
>      NA, NA, 11L, 10L, NA, NA, NA), .Label = c(" 1.5", " 2.0",
>      " 2.5", " 3.0", " 3.5", " 4.0", " 5.0", " 5.5", " 6.0", " 6.5",
>      " 7.0", " 7.5", " 8.0", " 9.0", "10.0", "12.0", "13.0", "3.0000",
>      "4.0000", "5.0000", "5.4864", "6.0000", "6.0960"), class = "factor"),
>      r_wvht = c(0.91, 1, 1.02, 0.76, 0.78, 0.78, 1.35, 1.35, 1.57,
>      1.57, 1.53, 1.53, 1.51, 1.53, 1.69), r_dpd = c(14.29, 4.35,
>      4.35, 13.33, 13.33, 8.33, 8.33, 8.33, 8.33, 8.33, 8.33, 8.33,
>      9.09, 9.09, 8.33), r_apt = c(4.59, 4.45, 4.26, 5.87, 6.27,
>      6.58, 6.7, 6.7, 6.67, 6.67, 6.66, 6.5, 6.99, 6.95, 7.19),
>      r_mwd = c(229, 291, 297, 226, 228, 260, 287, 287, 291, 291,
>      290, 290, 294, 292, 298), r_wtmp = c(12.6, 12.6, 12.5, 12.7,
>      12.6, 12.6, 12.8, 12.8, 12.7, 12.7, 12.7, 12.7, 13.4, 13.4,
>      13.5), l_salinity = c("33.513", "33.513", "33.513", "33.513",
>      "33.513", "33.513", "33.513", "33.513", "33.513", "33.513",
>      "33.513", "33.513", "33.513", "33.513", "33.513"), l_o2 = c("0",
>      "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
>      "0", "0"), l_hs = c("54.926", "54.926", "54.926", "54.926",
>      "54.926", "54.926", "54.926", "54.926", "54.926", "54.926",
>      "54.926", "54.926", "54.926", "54.926", "54.926"), l_tp = c("340.0",
>      "340.0", "340.0", "340.0", "340.0", "340.0", "340.0", "340.0",
>      "340.0", "340.0", "340.0", "340.0", "340.0", "340.0", "340.0"
>      ), l_wdir = c("1.600", "1.600", "1.600", "1.600", "1.600",
>      "1.600", "1.600", "1.600", "1.600", "1.600", "1.600", "1.600",
>      "1.600", "1.600", "1.600"), l_along = c(NA_real_, NA_real_,
>      NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_,
>      NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_,
>      NA_real_), l_cross = c(NA_real_, NA_real_, NA_real_, NA_real_,
>      NA_real_, NA_real_, NA_real_, NA_real_, NA_real_, NA_real_,
>      NA_real_, NA_real_, NA_real_, NA_real_, NA_real_), l_mab = c(".",
>      ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".", ".",
>      ".", "."), l_depth = c(" 9.090", " 9.090", " 9.090", " 9.090",
>      " 9.090", " 9.090", " 9.090", " 9.090", " 9.090", " 9.090",
>      " 9.090", " 9.090", " 9.090", " 9.090", " 9.090"), l_temp1 =
> c("11.288",
>      "11.288", "11.288", "11.288", "11.288", "11.288", "11.288",
>      "11.288", "11.288", "11.288", "11.288", "11.288", "11.288",
>      "11.288", "11.288"), l_temp7 = c("13.675", "13.675", "13.675",
>      "13.675", "13.675", "13.675", "13.675", "13.675", "13.675",
>      "13.675", "13.675", "13.675", "13.675", "13.675", "13.675"
>      ), l_temp14 = c("13.743", "13.743", "13.743", "13.743", "13.743",
>      "13.743", "13.743", "13.743", "13.743", "13.743", "13.743",
>      "13.743", "13.743", "13.743", "13.743")), .Names = c("dive_id",
> "timestamp", "visability", "r_wvht", "r_dpd", "r_apt", "r_mwd",
> "r_wtmp", "l_salinity", "l_o2", "l_hs", "l_tp", "l_wdir", "l_along",
> "l_cross", "l_mab", "l_depth", "l_temp1", "l_temp7", "l_temp14"
> ), row.names = c(" 1", " 2", " 3", " 4", " 5", " 6", " 7", " 8",
> " 9", "10", "11", "12", "13", "14", "15"), class = "data.frame")
> fishTable (first 15 lines)
> structure(list(name_2009 = c("E. lateralis", "O. pictus", "S. atrovirens",
> "S. carnatus", "S. caurinus", "S. chrysomelas", "S. miniatus",
> "S. mystinus", "S. OYT", "S. pinniger", "S. serriceps", "E. jacksoni",
> "B. frenatus", "H. decagrammus", "S. rastrelliger"), name_2008 = c("ELAT",
> "OPIC", "SATR", "SCAR", "SCAU", "SCHR", "SMIN", "SMYS", "OYT",
> "SPIN", "STRE", "EJAC", "BFRE", "HDEC", "SRAS"), description = c("Striped
> Surfperch,",
> "Painted Greenling,", "kelp rockfish,", "gopher rockfish,", "copper
> rockfish,",
> "black and yellow rockfish,", "vermilion rockfish,", "blue rockfish,",
> "OYT (Olive/Yellowtail) Rockfish, This species group includes Sebastes
> serranoides and Sebastes flavidus (Olive/Yellowtail)",
> "canary rockfish,", "treefish,", "Black Surfperch,", "Kelp Surfperch,",
> "Kelp Greenling,", "grass rockfish,")), .Names = c("name_2009",
> "name_2008", "description"), row.names = c(NA, 15L), class = "data.frame")
> Thank you for your insight and help,
> Yolande
>
> 	[[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.
>



More information about the R-help mailing list