是否将过滤(例如,使用grep)与绘图功能相结合?

是否将过滤(例如,使用grep)与绘图功能相结合?,r,plot,filtering,R,Plot,Filtering,刚开始学习R,我还没有找到任何例子来回答我的问题 我整理了一组数据,如下所示: Sample.Name Component.name TCAmount Ratio 1A-S0 Alprazolam 0.0 0.05 1A-S1 Alprazolam 1.5 0.07 1A-S2 Alprazolam 3.1 0.08 1A-S3 Alpr

刚开始学习R,我还没有找到任何例子来回答我的问题

我整理了一组数据,如下所示:

Sample.Name    Component.name  TCAmount  Ratio
1A-S0          Alprazolam         0.0      0.05
1A-S1          Alprazolam         1.5      0.07
1A-S2          Alprazolam         3.1      0.08
1A-S3          Alprazolam         6.25     0.10
2A-S0          Alprazolam         0.0      0.06
2A-S1          Alprazolam         1.5      0.08
2A-S2          Alprazolam         3.1      0.09
2A-S3          Alprazolam         6.25     0.10
1B-S0          Alprazolam         0.0      0.05
1B-S1          Alprazolam         1.5      0.08
1B-S2          Alprazolam         3.1      0.10
1B-S3          Alprazolam         6.25     0.11`
我现在正在寻找一种方法来选择Sample.Name列中包含“1A”的所有行(这样就包括1A-S0、1A-S1、1A-S2、1A-S3),然后让R绘制仅包含此字符串的行的
比率与
TCAmount
。我遇到过grep,它能够选择包含术语“1A”的行:

我的问题是:如何命令R现在仅为这些列绘制
grep
选择的
比率和
TCAmount
?我不希望创建此数据的子集,而必须创建指向的特定命令,因为这已经是更大数据集的子集。如果我开始创建更多的子集,我最终会得到50个这样的数据集,乘以这些数据集被划分成的子集的数量。。。啊!

如果可能,我最终希望能够创建一个循环,其中R知道如何使用Sample.Name级别(在本例中为1A、2A、1B)来创建三个图,自动显示
比率
TCAmounts


谢谢你能提供的任何帮助

这是一个使用包ggplot2进行打印的解决方案。它还将为数据中的每个Sample.Name级别创建一个绘图(我假设Sample.Name级别是
Sample.Name
中的前两个字符)。ggplot2可以使用数据框中的一列自动拆分组中的数据并创建多个绘图

我首先向数据框添加一列
Sample.Name.Level
,如下所示:

alprazolam.df$Sample.Name.Level <- substr(alprazolam.df$Sample.Name, 1, 2)


对某些行进行子集设置(通过某些逻辑条件,无论是grep的输出还是其他逻辑条件)称为筛选。(对某些列进行子集设置称为选择)。所以你的问题是“如何过滤然后打印选定的行”我可以在这个问题上再添加一层吗?我如何自动创建多个GGPlot(例如通过循环),其中它将创建您上面显示的内容,但对在
Component.name
列中找到的每个不同字符(药物名称)执行该操作?
 [1] "1A-S0" "1A-S1" "1A-S2" "1A-S3"
alprazolam.df$Sample.Name.Level <- substr(alprazolam.df$Sample.Name, 1, 2)
library(ggplot2)
ggplot(alprazolam.df, aes(x = TCAmount, Ratio)) +
    facet_wrap(~ Sample.Name.Level) + geom_line()