我有一个数据框(raw.data),其中包含调查中采样的多个shell的数据,每个采样的shell都有一行。
Site Sample Species Length (mm)
Site A A Species A 10
Site A A Species A 20
Site A B Species A 6
Site A B Species B 10
我有一个.txt文件,其中包含每个物种的物种名称和预期的最小和最大长度数据。我想编写一个简短的函数来检查raw.data中的长度与每个物种的.txt文件中的Min和Max长度。如果某个值超出范围,我想要一条错误消息,告诉我哪些行有问题。
我是R的新手,对功能的经验很少,所以任何帮助都会非常感激!
答案 0 :(得分:0)
如果您可以加入数据框,那么简单的逻辑测试应该可以满足您的需求。
Reference <-
"Species,min,max\n
Species A,0,10 \n
Species B,5,15 \n
Species C,10,20"
Reference <- read.csv(textConnection(Reference),
stringsAsFactors = FALSE)
Species <-
"Site,Sample,Species,Length\n
Site A,A,Species A,10 \n
Site A,A,Species A,20\n
Site A,B,Species A,6\n
Site A,B,Species B,10"
Species <- read.csv(textConnection(Species),
stringsAsFactors = FALSE)
library(dplyr)
Species_Ref <- left_join(Species, Reference,
by = c("Species" = "Species")) %>%
mutate(in_range = Length >= min & Length <= max)