编码变量 a、b、c 以匹配来自另一个数据点的变量 x

问题描述 投票:0回答:2

在 R 中做一些生物信息学,我对此很陌生。

在我的dataset中,每个患者有两个数据条目。然而,仅记录其中一项的患者特征。为了进行我想做的下游分析,我需要将特征复制到相应的条目。我不能假设相应的条目始终是下面的行,因为有些患者没有第二个数据点或有更多重复。

dput(head(patient.info))

structure(list(Study_ID = c(104, 104, 108, 108, 114, 114), Group = c("BS", 
NA, "BS", NA, "BS", NA), Group2 = c("MO", NA, "MO", NA, "MO", 
NA), Age = c(50.5, NA, 33.5, NA, 51.7, NA), Sex = c("F", NA, 
"F", NA, "F", NA), Sex2 = c(2L, NA, 2L, NA, 2L, NA), Ethnicity = c("A", 
NA, "D", NA, "C", NA), Eth2 = c("EW", NA, "AF M", NA, "EW", NA
)), row.names = c(35L, 36L, 40L, 41L, 49L, 50L), class = "data.frame")

`

我可以使用与患者相对应的Study_ID吗?

谢谢

说实话我不知道该怎么做

r bioinformatics data-manipulation
2个回答
0
投票

一种方法是使用

fill
和所需的填充方向。

library(dplyr)
library(tidyr)

patient.info %>% 
  group_by(Study_ID) %>% 
  fill(everything(), .direction="down") %>% 
  ungroup()
# A tibble: 6 × 8
  Study_ID Group Group2   Age Sex    Sex2 Ethnicity Eth2 
     <dbl> <chr> <chr>  <dbl> <chr> <int> <chr>     <chr>
1      104 BS    MO      50.5 F         2 A         EW   
2      104 BS    MO      50.5 F         2 A         EW   
3      108 BS    MO      33.5 F         2 D         AF M 
4      108 BS    MO      33.5 F         2 D         AF M 
5      114 BS    MO      51.7 F         2 C         EW   
6      114 BS    MO      51.7 F         2 C         EW 

0
投票

我会提取每个患者的特征(变量 Study_ID),然后将此数据集加入到您的原始数据集中。当您加入时,每个患者的其他行在数据集中的位置或每个患者是否有两行以上并不重要。

© www.soinside.com 2019 - 2024. All rights reserved.