Как найти определенные строки в R и вернуть информацию этой строки обратно - PullRequest
0 голосов
/ 21 февраля 2019

Я работаю с данными RNA seq с именами генов в качестве моего первого столбца и данными экспрессии кластерных генов в качестве следующих столбцов.Есть много генов, но меня интересуют только около 200.Есть ли способ просто нацелиться на эти конкретные гены, а затем создать матрицу данных с ними.Я могу получить информацию из столбцов

Mydata.1 <- x[c("Gene Name", "Cluster_1")]

Но не строки, например, это не удается

Mydata.1 <- x[c("Malat1", "Cd74")] 

Кто-нибудь знает, как я смогу это сделать?Спасибо!

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Этот ответ использует логический вектор для поднабора строк данных.Подробнее об этом смотрите: http://adv -r.had.co.nz / Subsetting.html # data-types .

# Mockup data
x <- data.frame(
  `Gene Name` = c("HPRT1", "ABC", "Malat1", "Cd74"),
  Cluster_1 = 1:4,
  Cluster_2 = 5:8,
  check.names = FALSE
)

# Defining gene names of interest to look for
target_genes <- c("Malat1", "Cd74")

# Getting a logical vector that implicitly codes for row positions
# Note: we need to wrap Gene Name in backticks (``) because of the space character in "Gene Name"
row_matches <- x$`Gene Name` %in% target_genes

# Subsetting the gene expression  matrix (actually a dataframe object)
# mydata2: dataframe whose rows are for target genes only
# Note: the empty placeholder after the comma in the subsetting below indicates all columns
mydata2 <- x[row_matches, ]

mydata2
#>   Gene Name Cluster_1 Cluster_2
#> 3    Malat1         3         7
#> 4      Cd74         4         8

В качестве альтернативы мы также можем использоватьФункция subset для более краткого кода:

# Mockup data
x <- data.frame(
  `Gene Name` = c("HPRT1", "ABC", "Malat1", "Cd74"),
  Cluster_1 = 1:4,
  Cluster_2 = 5:8,
  check.names = FALSE
)

# Defining gene names of interest to look for
target_genes <- c("Malat1", "Cd74")

# As an alternative use the function subset
mydata2 <- subset(x, `Gene Name` %in% target_genes)

mydata2
#>   Gene Name Cluster_1 Cluster_2
#> 3    Malat1         3         7
#> 4      Cd74         4         8
0 голосов
/ 21 февраля 2019

Чтобы найти нужные данные, вы можете использовать этот код:

newdata <- mydata [which (mydata $ gene == 'THE_GENE_U_LOOK_FOR',] </p>

...