【发布时间】:2020-03-22 08:05:18
【问题描述】:
我是 R 新手,非常感谢您的帮助。 我有一个 3 列 df,看起来像这样:
> head(data)
V.hit J.hit frequency
1 IGHV1-62-3*00 IGHJ2*00 0.51937442
2 IGHV5-17*00 IGHJ3*00 0.18853542
3 IGHV3-5*00 IGHJ1*00 0.09777304
4 IGHV2-9*00 IGHJ3*00 0.03040866
5 IGHV5-12*00 IGHJ4*00 0.02900040
6 IGHV5-12*00 IGHJ2*00 0.00910554
例如,这只是数据的一部分。我想创建一个热图,以便 X 轴为“V.hit”,Y 轴为“J.hit”,热图的值将是频率(我对频率感兴趣V+j 的每个组合)。我尝试使用此代码进行插值:
library(akima)
newData <- with(data, interp(x = `V hit`, y = `J hit`, z = frequency))
但我收到此错误:
Error in interp.old(x, y, z, xo, yo, ncp = 0, extrap = FALSE, duplicate = duplicate, :
missing values and Infs not allowed
所以我不知道如何处理它。我想实现这个最终输出:
> head(fld)
# A tibble: 6 x 5
...1 `IGHJ1*00` `IGHJ2*00` `IGHJ3*00` `IGHJ4*00`
<chr> <dbl> <dbl> <dbl> <dbl>
1 IGHV10-1*00 0.00233 0.00192 NA 0.000512
2 IGHV1-14*00 NA NA 0.00104 NA
3 IGHV1-18*00 NA 0.000914 NA NA
4 IGHV1-18*00 NA NA 0.000131 NA
5 IGHV1-19*00 0.0000131 NA NA NA
6 IGHV1-26*00 NA 0.000214 NA NA
而“NA”的单元格将被分配为“0”。 然后我假设我将能够使用热图函数来创建我的热图。任何帮助将不胜感激!
【问题讨论】:
-
可能
xtabs是您所需要的:它可以让您创建列联表。将NAs 替换为0s。看看这里:rdocumentation.org/packages/stats/versions/3.6.2/topics/xtabs