首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用R将行转换为列和标题

使用R将行转换为列和标题
EN

Stack Overflow用户
提问于 2021-06-25 23:00:59
回答 1查看 39关注 0票数 0

您好,我有一个文本文件summary.txt,如下所示

代码语言:javascript
复制
snp_fp_overlapp_count: 0
snp_fn_overlapp_count: 0
snp_fn_ca_overlapp_count: 0
snp_fn_ca_0: 0
indel_fp_overlapp_count: 0
indel_fn_overlapp_count: 0
indel_fn_ca_overlapp_count: 0
indel_fn_ca_0: 0
-------------------------------------
snp_hard_count: 0
indel_hard_count: 0
unknown_count: 0
-------------------------------------
total_baseline_snp: 12405
total_baseline_indel: 1137
-------------------------------------
Precision_SNP: 0.790329
Sensitivity_SNP: 0.972350
F_Measure_SNP: 0.871941
-------------------------------------
Precision_INDEL: 0.119915
Sensitivity_INDEL: 0.941073
F_Measure_INDEL: 0.212724
-------------------------------------
Annotation Percent Match:
-------------------------------------
-------------------------------------

我需要将指标名称转换为列,并将其值转换为R中的第二行,如下所示

代码语言:javascript
复制
Precision_INDEL Sensitivity_INDEL   F_Measure_INDEL
0.119915    0.941073    0.212724

不知道该怎么做,我一直在纠结于tidyverse,这似乎不是解决方案

代码语言:javascript
复制
mydata = read_table("summary.txt")

mydata %>% 
  rownames_to_column() %>% 
  gather(variable, value, -rowname) %>% 
  separate(variable ,sep = ":",into = c("metric","value")) %>%
  spread(rowname, value)

任何指针/解决方案都会很有用

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-25 23:32:37

这是你需要的吗?我不确定你所说的‘以表格形式’是什么意思。

代码语言:javascript
复制
dat = data.table::fread('snp_fp_overlapp_count: 0
snp_fn_overlapp_count: 0
snp_fn_ca_overlapp_count: 0
snp_fn_ca_0: 0
indel_fp_overlapp_count: 0
indel_fn_overlapp_count: 0
indel_fn_ca_overlapp_count: 0
indel_fn_ca_0: 0
snp_hard_count: 0
indel_hard_count: 0
unknown_count: 0
total_baseline_snp: 12405
total_baseline_indel: 1137
Precision_SNP: 0.790329
Sensitivity_SNP: 0.972350
F_Measure_SNP: 0.871941
Precision_INDEL: 0.119915
Sensitivity_INDEL: 0.941073
F_Measure_INDEL: 0.212724
Annotation Percent Match:
', sep=" ")
代码语言:javascript
复制
a = dat %>% tidyr::pivot_wider(names_from="V1", values_from="V2")
代码语言:javascript
复制
# A tibble: 1 x 19
  `snp_fp_overlapp_co… `snp_fn_overlapp_co… `snp_fn_ca_overlapp_… `snp_fn_ca_0:`
                 <dbl>                <dbl>                 <dbl>          <dbl>
1                    0                    0                     0              0
# … with 15 more variables: indel_fp_overlapp_count: <dbl>,
#   indel_fn_overlapp_count: <dbl>, indel_fn_ca_overlapp_count: <dbl>,
#   indel_fn_ca_0: <dbl>, snp_hard_count: <dbl>, indel_hard_count: <dbl>,
#   unknown_count: <dbl>, total_baseline_snp: <dbl>,
#   total_baseline_indel: <dbl>, Precision_SNP: <dbl>, Sensitivity_SNP: <dbl>,
#   F_Measure_SNP: <dbl>, Precision_INDEL: <dbl>, Sensitivity_INDEL: <dbl>,
#   F_Measure_INDEL: <dbl>
代码语言:javascript
复制
> colnames(a)
 [1] "snp_fp_overlapp_count:"      "snp_fn_overlapp_count:"     
 [3] "snp_fn_ca_overlapp_count:"   "snp_fn_ca_0:"               
 [5] "indel_fp_overlapp_count:"    "indel_fn_overlapp_count:"   
 [7] "indel_fn_ca_overlapp_count:" "indel_fn_ca_0:"             
 [9] "snp_hard_count:"             "indel_hard_count:"          
[11] "unknown_count:"              "total_baseline_snp:"        
[13] "total_baseline_indel:"       "Precision_SNP:"             
[15] "Sensitivity_SNP:"            "F_Measure_SNP:"             
[17] "Precision_INDEL:"            "Sensitivity_INDEL:"         
[19] "F_Measure_INDEL:"           
> as.numeric(a[1,])
 [1]     0.000000     0.000000     0.000000     0.000000     0.000000
 [6]     0.000000     0.000000     0.000000     0.000000     0.000000
[11]     0.000000 12405.000000  1137.000000     0.790329     0.972350
[16]     0.871941     0.119915     0.941073     0.212724
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68133118

复制
相关文章

相似问题

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