是否将过滤(例如,使用grep)与绘图功能相结合?
刚开始学习R,我还没有找到任何例子来回答我的问题 我整理了一组数据,如下所示:是否将过滤(例如,使用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
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()