У меня есть девять различных фреймов данных, на которых я хочу запустить те же тесты поиска.с помощью таблицы поиска для заполнения нескольких столбцов
Вот два из девяти dataframes ...
PIRO_PLS_Points <- structure(list(SPECIES1 = c("CE", "BE", "BE", "YB", "BF", "BE",
"SU", "CE", "SU", "SU"), ComName1 = c(NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_), Latin1 = c(NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_),
TSN1 = c(NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_), SPECIES2 = c("CE", "BE", "BE",
"YB", "BF", "BE", "BE", "SU", "SU", "SU"), ComName2 = c(NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_), Latin2 = c(NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_
), TSN2 = c(NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_), SPECIES3 = c(NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_), ComName3 = c(NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_
), Latin3 = c(NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_), TSN3 = c(NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_)), data_types = c("N", "N", "F", "F", "N",
"N", "N", "F", "F", "C", "C", "N", "C", "C", "C", "C", "C", "C",
"N", "C", "C", "C", "C", "C", "C", "C", "C", "C", "N", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "N", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "N", "C", "C", "C", "C", "C", "N", "C", "N",
"N", "N", "C", "N", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"N", "N", "C", "F", "F", "F", "F", "N", "N", "F", "F", "N", "N",
"C", "C", "C", "C", "F", "F", "C"), .Names = c("SPECIES1", "ComName1",
"Latin1", "TSN1", "SPECIES2", "ComName2", "Latin2", "TSN2", "SPECIES3",
"ComName3", "Latin3", "TSN3"), row.names = c("1", "2", "3", "4",
"5", "6", "7", "8", "9", "10"), class = "data.frame")
и
SLBE_PLS_Points <- structure(list(SPECIES1 = c("CE", "BE", "BE", "YB", "BF", "BE",
"SU", "CE", "SU", "SU"), ComName1 = c(NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_), Latin1 = c(NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_),
TSN1 = c(NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_), SPECIES2 = c("CE", "BE", "BE",
"YB", "BF", "BE", "BE", "SU", "SU", "SU"), ComName2 = c(NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_), Latin2 = c(NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_
), TSN2 = c(NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_), SPECIES3 = c(NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_), ComName3 = c(NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_
), Latin3 = c(NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_), TSN3 = c(NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_, NA_character_, NA_character_, NA_character_,
NA_character_)), data_types = c("N", "N", "F", "F", "N",
"N", "N", "F", "F", "C", "C", "N", "C", "C", "C", "C", "C", "C",
"N", "C", "C", "C", "C", "C", "C", "C", "C", "C", "N", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "N", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "N", "C", "C", "C", "C", "C", "N", "C", "N",
"N", "N", "C", "N", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"N", "N", "C", "F", "F", "F", "F", "N", "N", "F", "F", "N", "N",
"C", "C", "C", "C", "F", "F", "C"), .Names = c("SPECIES1", "ComName1",
"Latin1", "TSN1", "SPECIES2", "ComName2", "Latin2", "TSN2", "SPECIES3",
"ComName3", "Latin3", "TSN3"), row.names = c("1", "2", "3", "4",
"5", "6", "7", "8", "9", "10"), class = "data.frame")
В dataframes уже содержат столбцы, которые я хочу, чтобы заполнить (ComName1
, Latin1
, TSN1
, ComName2
и т.д.) на основе другой колонки; SPECIES1
, SPECIES2
и т.д.
Вот таблица поиска, которые я хотел бы применить ...
sp.list <-c('BE','YB','SU')
com.list <-c('bear','yellow','supper')
latin.list <- c('juglans','quercus','fraxinus')
tsn.list <- c(100203,999999,88888)
lookup = cbind(sp.list,com.list,latin.list,tsn.list)
И выглядит следующим образом:
sp.list com.list latin.list tsn.list
[1,] "BE" "bear" "juglans" "100203"
[2,] "YB" "yellow" "quercus" "999999"
[3,] "SU" "supper" "fraxinus" "88888"
Таким образом, в конце концов, я хотел бы для заполнения $ComName1
, $Latin1
, $TSN1
,, , и т.п. все основываясь на lookup
таблица. Я думал, что таблица поиска будет самым простым способом, но я открыт для других предложений.
Это обеспечивает поиск только для SPECIES1. Я хотел бы использовать тот же поиск, чтобы пройти и заполнить ComName2, Latin2, TSN2, ComName3 и т. Д. – cherrytree
Вы можете запустить его три раза, например make 'merged_species1',' merged_species2' и т. Д., Тогда 'cbind()' them все в единый набор данных. Но вам, вероятно, будет лучше использовать SQL в этот момент. –