【发布时间】:2012-01-31 06:12:32
【问题描述】:
我需要运行 awk 脚本来检测光谱中的局部最大值(峰值)。此光谱在文本文件中以两列的形式出现。
这是一个更大项目的一部分,该项目将确定这些峰是否代表某些化合物(实际上是代谢物)。
我在 Google 和无数其他地方搜索过,我真的找不到在 R 中运行 awk 脚本的任何东西。
编辑:我使用的 awk 脚本看起来像这样-
awk 'BEGIN{dydx = 0;}
{
if(NR > 1)
{ dydx = ($2 - y0)/($1 - x0); }
if(NR > 2 && last * dydx < 0)
{ printf( "%.4f %.4f\n", (x0 + $1)/2, log((dydx<0)?-dydx:dydx)); } ;
last=dydx; x0=$1; y0=$2
}' /home/chaitanya/Work/nmr_spectra/caffeine/pdata/1/spectrumtext.txt | awk '$2 > 17'
您还可以查看我昨天提出的this 问题。请注意,这不是同一个问题。
【问题讨论】:
-
@baptiste 不是同一个问题。不,我已经找到了解决昨天问题的方法。我正在努力让它发挥作用。我仍在寻找其他可能的解决方案。因此,请不要认为这是重复的,并且出于这个原因对这个或其他问题投反对票。
-
不清楚您是否真的遵循了昨天的想法。如果您找到了解决方案,请将其添加到讨论中,并更好地解释您要解决的实际问题。
-
@baptiste 是对的(一如既往)。您应该始终保持透明。尽可能多地发布信息并链接到任何相关材料。
-
@baptiste 我改变了这两个问题。请看一看。我认为他们现在很清楚。