首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用条目数不相等的dcast整形数据帧

使用条目数不相等的dcast整形数据帧
EN

Stack Overflow用户
提问于 2019-08-26 04:39:50
回答 1查看 54关注 0票数 0

我试图重新整理一些数据,但遇到了一些问题,非常感谢您的任何建议或建议。

背景:我在一个叫做A的样本上测量了三个基因(FTH1,TFR1,VEGF)的值三次。第三次运行时对基因的一些测量没有被记录下来(这就是为什么有些基因有两个值,而另一些基因有三个值)。长格式数据如下:

代码语言:javascript
复制
          Sample   Gene    Value
1         A        FTH1    19.287
2         A        FTH1    18.411
3         A        TFR1    21.536
4         A        TFR1    22.528
5         A        TFR1    20.255
6         A        VEGF    14.414
7         A        VEGF    14.009

我想将这些数据重塑为以下格式,以便更容易地进行下游分析:

代码语言:javascript
复制
Sample  FTH1    TFR1    VEGF
A       19.287  21.2536 14.414
A       18.411  22.528  14.009
A       N/A     20.255  N/A

将数据重新格式化为上述表单的最佳方法是什么?

我尝试使用dcast,如下所示

代码语言:javascript
复制
library(reshape2)
library(tidyverse)

data = read.csv("data.csv")

dcast(data, Sample ~ Gene, value = "Value")

但是遇到了以下错误:

代码语言:javascript
复制
Aggregation function missing: defaulting to length
Error in .fun(.value[0], ...) : 
  2 arguments passed to 'length' which requires 1

我认为这是因为一些基因(即FTH1和血管内皮生长因子)有两个条目,而TFR1有三个条目--我不是100%确定。任何关于如何完成这种重塑的建议都将不胜感激!

EN

回答 1

Stack Overflow用户

发布于 2019-08-26 04:41:21

根据?reshape2::dcast的说法,使用情况是

drop dcast(数据,公式,fun.aggregate = NULL,...,

= NULL,subset = NULL,fill = NULL,drop= TRUE,value.var =guess_value(数据))

因此,参数是value.var

代码语言:javascript
复制
dcast(data, Sample ~ Gene, value.var = "Value")

此外,由于存在重复的元素,因此需要序列列

代码语言:javascript
复制
library(data.table)
dcast(setDT(data), rowid(Gene) + Sample ~ Gene, value.var = "Value")[,
        Gene := NULL][]
#   Sample   FTH1   TFR1   VEGF
#1:      A 19.287 21.536 14.414
#2:      A 18.411 22.528 14.009
#3:      A     NA 20.255     NA

数据

代码语言:javascript
复制
data <- structure(list(Sample = c("A", "A", "A", "A", "A", "A", "A"), 
    Gene = c("FTH1", "FTH1", "TFR1", "TFR1", "TFR1", "VEGF", 
    "VEGF"), Value = c(19.287, 18.411, 21.536, 22.528, 20.255, 
    14.414, 14.009)), class = "data.frame", row.names = c(NA, 
-7L))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57649561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档