Как извлечь верхнюю строку векторной переменной - PullRequest
2 голосов
/ 07 мая 2020

У меня есть эта переменная filtered, которая содержит то, что кажется списком со строками. Мне не удалось определить его тип или как извлечь из него только те значения, которые я хочу сохранить.

C17S35076296E35282086 C12S84542006E85443011 C17S41062669E41447005 C12S85450052E85962613 C12S70574871E71644041 
         3.390521e-23          1.532544e-06          2.463260e-06          5.123223e-06          6.373701e-06 

Мне нужно сохранить только верхнюю строку этой переменной, поэтому мне нужно отбросить число. Этот вектор был заполнен следующим образом:

p_values <- c()
for (i in names(data)[-1]) {
    # Create a contingency table
    cont_tbl <- table(data[[i]], df_classes[[1]])
    # Perform Fisher's exact test
    test_result <- fisher.test(cont_tbl)
    # Add the p-value of the test to the list
    p_values[i] <- test_result$p.value
} 

filtered <- sort(p_values)[1:20]

Я пробовал следующее

filtered[1]
filtered[,1]
filtered[1,]
filtered[1][1]

Все безрезультатно.

Ответы [ 2 ]

2 голосов
/ 07 мая 2020

Это именованный вектор numeri c, см. Пример:

# example data
x <- setNames(1:3, letters[1:3])

str(x)
# Named int [1:3] 1 2 3
# - attr(*, "names")= chr [1:3] "a" "b" "c"

x
# a b c 
# 1 2 3 

names(x)
# [1] "a" "b" "c"

unname(x)
# [1] 1 2 3
1 голос
/ 07 мая 2020

Вы пробовали?

names(filtered)[1]

Например:

v <- c(1, 2, 3)
names(v) <- c("a", "b", "c")
str(v)

Это дает вам:

 Named num [1:3] 1 2 3
 - attr(*, "names")= chr [1:3] "a" "b" "c"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...