I have this problem:
# Packages
library(tidyverse)
# Open band file
bands_F <- read.csv("https://raw.githubusercontent.com/Leprechault/trash/main/bands.csv")
str(bands_F)
# 'data.frame': 2432 obs. of 10 variables:
# $ STAND : chr "MA02ABOB7D" "MA02ABOB7D" "MA02ABOB7D" "MA02ABOB7D" ...
# $ COMPANY: chr "KLABIN" "KLABIN" "KLABIN" "KLABIN" ...
# $ SPACING: chr "3.3x1.8" "3.3x1.8" "3.3x1.8" "3.3x1.8" ...
# $ SPECIES: chr "EUCALYPTUS" "EUCALYPTUS" "EUCALYPTUS" "EUCALYPTUS" ...
# $ AGE : int 1 1 1 1 1 1 1 1 1 1 ...
# $ STATS : chr "MEAN" "SD" "MIN" "MAX" ...
# $ B2 : num 242.6 84.5 102 534 184.3 ...
# $ B3 : num 359 138 115 867 332 ...
# $ B4 : num 299 159 87 886 278 ...
# $ B8 : num 2678 872 901 4721 2695 ...
# Open NDVI file
NDVI_F <- read.csv("https://raw.githubusercontent.com/Leprechault/trash/main/ndvi.csv")
str(NDVI_F)
# 'data.frame': 2432 obs. of 7 variables:
# $ STAND : chr "MA02ABOB7D" "MA02ABOB7D" "MA02ABOB7D" "MA02ABOB7D" ...
# $ COMPANY: chr "KLABIN" "KLABIN" "KLABIN" "KLABIN" ...
# $ SPACING: chr "3.3x1.8" "3.3x1.8" "3.3x1.8" "3.3x1.8" ...
# $ SPECIES: chr "EUCALYPTUS" "EUCALYPTUS" "EUCALYPTUS" "EUCALYPTUS" ...
# $ AGE : int 1 1 1 1 1 1 1 1 1 1 ...
# $ STATS : chr "MEAN" "SD" "MIN" "MAX" ...
# $ NDVI : num 0.8039 0.0554 0.5768 0.8727 0.8208 ...
I'd like just add NDVI column in bands_F
for the same STAND, COMPANY, SPACING, SPECIES, AGE and STATS levels, but if I use plyr::join_all
:
# Join all
DS_F_1 <- plyr::join_all(list(bands_F,NDVI_F))
str(DS_F_1)
# 'data.frame': 33808 obs. of 11 variables:
# $ STAND : chr "MA02ABOB7D" "MA02ABOB7D" "MA02ABOB7D" "MA02ABOB7D" ...
# $ COMPANY: chr "KLABIN" "KLABIN" "KLABIN" "KLABIN" ...
# $ SPACING: chr "3.3x1.8" "3.3x1.8" "3.3x1.8" "3.3x1.8" ...
# $ SPECIES: chr "EUCALYPTUS" "EUCALYPTUS" "EUCALYPTUS" "EUCALYPTUS" ...
# $ AGE : int 1 1 1 1 1 1 1 1 1 1 ...
# $ STATS : chr "MEAN" "MEAN" "MEAN" "SD" ...
# $ B2 : num 242.6 242.6 242.6 84.5 84.5 ...
# $ B3 : num 359 359 359 138 138 ...
# $ B4 : num 299 299 299 159 159 ...
# $ B8 : num 2678 2678 2678 872 872 ...
# $ NDVI : num 0.8039 0.8208 0.7782 0.0554 0.0598 ...
Doesn't work and a data.frame
with 10-factor size (33808 obs.) was created and considering the same levels the size must be 2432 obs. Please any help with it?
But merge
and dplyr::inner_join
is not an option, because in my original dataset a have 11 objects to join and not only 2.
Thanks!
library(ifultools)
DS_F_1 <- mergeList(bands_F,NDVI_F)
str(DS_F_1)
# 'data.frame': 2432 obs. of 11 variables:
# $ STAND : chr "MA02ABOB7D" "MA02ABOB7D" "MA02ABOB7D" "MA02ABOB7D" ...
# $ COMPANY: chr "KLABIN" "KLABIN" "KLABIN" "KLABIN" ...
# $ SPACING: chr "3.3x1.8" "3.3x1.8" "3.3x1.8" "3.3x1.8" ...
# $ SPECIES: chr "EUCALYPTUS" "EUCALYPTUS" "EUCALYPTUS" "EUCALYPTUS" ...
# $ AGE : int 1 1 1 1 1 1 1 1 1 1 ...
# $ STATS : chr "MEAN" "SD" "MIN" "MAX" ...
# $ B2 : num 242.6 84.5 102 534 184.3 ...
# $ B3 : num 359 138 115 867 332 ...
# $ B4 : num 299 159 87 886 278 ...
# $ B8 : num 2678 872 901 4721 2695 ...
# $ NDVI : num 0.8039 0.0554 0.5768 0.8727 0.8208 ...