Either retrieves the spectra matrix from a
Spectra* object, or
Spectra* object from a
"data.frame" object different
interfaces detailed below.When applied to a
Spectra* object, this functions simply returns the spectra it is storing.
1 2 3 4 5 6 7 8
an object of class
see details below
see details below
If applied on a
"data.frame" object, it is an helper function to
Spectra* object. Two kind of interfaces are then available.
value can be:
wl, the wavelengths of the spectra can be passed by a
"numeric" vector. Alternatively, the names of the columns that contain the spectra information can be passed as a
This interface is specific to inspectr. It follows a scheme where differents parts can be observed, the id column, the attributes columns, and the spectra columns, described by the wavelengths at which it has been measured:
... placeholder for all the columns of your data.frame object except those that have been already used in other parts of the formula. This can lead to errors. E.g. if
object has data one every wavelength between 350 and 2500 nm,
spectra(object) <- id_field ~ ... ~ 500:2500 will stores the columns corresponding to the wavelengths 350-499 nm in its data slot!
id For the creation of a
SpectraDataFrame, it is important to always specify an id field in the formula. If no id column is present, the
id placeholder will create one for you.
spectra(object) <- ~ 350:2500 will build a
Spectra object from the wavelengths between 350 and 2500, based on the column names.
spectra(object) <- ~ 350:2:2500 will build a
Spectra object from the wavelengths in
seq(350, 2500, by = 2)
spectra(object) <- ~ 500:2350 will build a
Spectra object from the wavelengths between 500 and 2350, even though other wavelengths are present (they will be dropped)
In the three later cases, the id field has been dropped (it will be automatically created). If you want to use a column of
"data.frame" as an id filed, you can still use the first part of the formula:
spectra(object) <- id_field ~ 350:2500
spectra(object) <- id_field ~ 350:5:2500
Some data can also be added to the object, which will then be of
spectra(object) <- id_field ~ property1 ~ 500:2300 will create a
SpectraDataFrame with ids from the id_field column, data from the property1 column, and spectral information between 500 and 2300 nm. That means that data property2, and all spectral information from bands < 500 nm or > 2300 nm will be dropped
You can also combine the placeholders:
spectra(object) <- id_field ~ ... ~ 350:2500 will create a
SpectraDataFrame object with ids from the id_field column, all spectral bands between 350 and 2500 nm. The data slot is given all the remaining columns.
Pierre Roudier email@example.com
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
# Loading example data data(oz) class(oz) # this is a simple data.frame # structure of the data.frame: it is rowwise-formatted big.head(oz) ## CREATING Spectra OBJECTS ## # Using spectra() to initiate a Spectra from # the data.frame spectra(oz) <- sr_no ~ 350:2500 # It is possible to select wavelengths using the formula interface data(oz) spectra(oz) <- sr_no ~ 350:5:2500 data(oz) spectra(oz) <- sr_no ~ 500:1800 ## CREATING SpectraDataFrame OBJECTS ## # Using spectra() to initiate a SpectraDataFrame from # the data.frame data(oz) spectra(oz) <- sr_no ~ carbon + ph + clay ~ 350:2500 # Selecting data to be included in the SpectradataFrame object data(oz) spectra(oz) <- sr_no ~ carbon ~ 350:2500 # Forcing the creation of new ids using the id keyword in the # formula interface data(oz) spectra(oz) <- id ~ carbon ~ 350:2500 ids(oz, as.vector = TRUE) # Using the "..." short-hand to select all the remaining columns data(oz) spectra(oz) <- sr_no ~ ... ~ 350:2500 ## CREATING Spectra OBJECTS FROM ## BY-COLS-FORMATTED DATA ## # For data formatted in the colwise format, # use the "colwise" mode # Transforming data into colwise format # for demonstration's sake # m <- melt_spectra(oz) oz_by_col <- reshape2::acast(m, ... ~ sr_no) oz_by_col <- data.frame( wl = rownames(oz_by_col), oz_by_col, check.names = FALSE) # Here's colwise-formatted data big.head(oz_by_col) # Convert it into Spectra object spectra(oz_by_col, mode = "colwise") <- wl ~ ... # Then data can be added to promote it as a SpectraDataFrame my.data <- features(oz, exclude_id = FALSE) features(oz_by_col, key = 'sr_no') <- my.data
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.