【发布时间】:2011-08-04 12:06:10
【问题描述】:
输入1
dput(a1 100 200 +
a1 250 270 +
a1 333 340 -
a2 450 460 +)
输入2
dput(a1 101 106 +
a1 112 117 +
a1 258 259 +
a1 258 259 +
a1 258 259 +
a1 258 259 +
a1 258 259 +
a1 258 259 +
a1 258 259 +
a1 258 259 +
a1 258 259 +
a1 260 262 +
a1 260 262 +
a1 260 262 +
a1 260 262 +
a1 260 262 +
a1 332 333 -
a1 332 333 -
a1 332 333 -
a1 332 333 -
a1 332 333 -
a1 332 333 -
a1 332 333 -
a1 331 333 -
a1 331 333 -
a1 331 333 -
a1 331 333 -
a1 331 333 -
a1 331 333 -)
输出
c s e st 1 2 3 4 5 6 7 8 9 10
a1 100 200 + 1 2 0 0 0 0 0 0 0 0
a1 250 270 + 0 0 0 9 5 0 0 0 0 0
a1 330 340 - 0 0 0 0 0 0 0 6 7 0
a2 450 460 + 0 0 0 0 0 0 0 0 0 0
我想使用 input1 值计算点 (input2) 的密度。表示 a1-100-200 在这 100 到 200 范围内有多少个点?即3。我想对所有输入值做同样的事情。我想互相比较。但问题是值的长度(200-100=100 或 270-250=20)不同。为了将它们相互比较,我需要以我可以比较的方式缩放它们。所以我想出了 10 个 bins 窗口(输出)。我使用 input1 bin 计算 input2 点。 最后,我需要在 x 轴上绘制 bin,在 y 轴上绘制值 xyplot(x(bins),y1(a1:100:200:+)+y2(a1:250:270:+y3...+y4)
“+”表示我们需要以 100 为起点,200 为终点,当我们计算 bin 时(100-110 将是第一个 bin .....) - 意味着完全相反(190-200 将是第一个垃圾箱)
1-10 表示 1 到 10 个 bin
您需要根据 column1 键为 bin 使用第 1 列和第 2 列。我们删除不在范围内的值
c = character, s =start, e=end, s=strand, 1-10 是 input1 的 bin。是的,你是对的。例如,250-270 应该有 2 个数字差,因为(270-250=20,因此对于 10 个 bin,它将是 20/10=2)
【问题讨论】:
-
+和-的列是什么意思?它似乎与问题无关。此外,使用dput使您的数据可重现会很有帮助。 -
我不清楚标记为 1-10 的列在您的输出中应该代表什么。就此而言,c,s,e,st 还代表什么?为什么最终会在标记为 1-10 的列中计数?
-
还有两件事:为什么
input2有不止一列?你想如何处理input2中不属于input1中指定范围的值,例如,如何处理值 225? -
我们可以退后一步吗?您能否编辑您的问题以包含这 10 个 cmets 的相关详细信息?没有任何合理的问题需要有人通读 10 cmets 才能对问题所在有一个表面上的理解。我认为这里隐藏了一个很好的问题,但在当前的演示文稿中没有出现。帮助 SO 社区帮助您。这篇关于 SO 的帖子为提出好的问题提供了绝妙的见解:stackoverflow.com/questions/5963269/…
-
@repinemeter:嗯,不。在 R 中,键入
dput(input1)。输出应该是某种结构。在您的问题中,输入input1 <- <the output structure>。 (然后 CTRL+K 将其格式化为代码。)