我有一组数据(称为currentdata),其格式如下:
station depth As
1 -1 0.5
1 1 0.6
1 3 0.7
2 -1 0.1
2 1 0.4
2 3 0.2
3 -1 0.6
3 1 0.4
3 3 0.7
我正在使用以下代码进行绘制:
#pick column names from currentdata to extract the metal name
column_names <- colnames(currentdata)
plotting_metal <- column_names[3]
#plot the data
plot <- ggplot(currentdata, aes(x=depth, y=currentdata[[3]])) +
geom_bar(stat = "identity") +
scale_x_reverse() +
coord_flip() +
labs(title = paste(plotting_metal, "standardised sediment concentrations"), x = "depth (cm)",
y = paste(plotting_metal, "concentration (ug/g)")) +
facet_wrap(~station)
plot
现在,我想在这些图中添加一些线,以告诉我这些金属的正常背景浓度和潜在的毒性浓度值。为此,我制作了另一个表,称为boundary_values,其结构如下:
level As Cd Cr
base_level 0.2 0.4 0.7
high_level 0.6 0.7 1.4
现在,我希望此代码能够正常工作,这样我就不必在每次选择要绘制的新金属时都从boundary_values中手动输入所需金属的名称。相反,我希望它使用currentdata的第三列中的名称,并使用它来告诉它从boundary_values中选择哪一列。
到目前为止,这就是我所拥有的:
#pick column names from currentdata to extract the metal name
column_names <- colnames(currentdata)
plotting_metal <- column_names[3]
#get the correct boundary values
metal_values <- boundary_values$parse(text=plotting_metal)
base_value <-
high_value <-
#plot the data
plot <- ggplot(currentdata, aes(x=depth, y=currentdata[[3]])) +
geom_bar(stat = "identity") +
geom_hline(aes(yintercept=base_value, linetype = "background concentration"), colour="green") +
geom_hline(aes(yintercept=high_value, linetype = "possibly harmful past this"), colour="red") +
scale_x_reverse() +
coord_flip() +
labs(title = paste(plotting_metal, "standardised sediment concentrations"), x = "depth (cm)",
y = paste(plotting_metal, "concentration (ug/g)")) +
facet_wrap(~station)
plot
您可以大致了解我要做什么,但是在尝试创建变量metal_values的过程中,它有点落伍。我的问题是,我尝试执行的操作是否甚至可以在R中完成?如果可以,应该尝试哪种方法?谢谢您的宝贵时间。
答案 0 :(得分:0)
我会进行匹配-尝试使用向量%in%的值吗?例如
vector[which(vector %in% c(value)]
将返回展示位置。 对于数据帧。如果执行df [row,name],它将返回您的绑定。