Получить имена строк и столбцов определенных значений в кадре данных - PullRequest
0 голосов
/ 28 сентября 2018

Я очень плохо знаком с R. У меня есть датафрейм, и я хочу извлечь строки и имена столбцов, которые имеют высокие и низкие значения.Мои реальные данные очень большие.Я привел ниже примерный фрейм данных.

   A         B       C       D  
1  middle   middle   middle  high
2  high     middle   middle  high
3  high     low      middle  middle
4  middle   middle   middle  middle

Я хочу выводить как:

row  column  
 1    D=high
 2    A,D= high
 3    A=high,B=low

Я пытался вот так.Но вывод не легко интерпретировать.

which(apply(df, 1, function(r) any(r %in% c("high", "low"))))
 (returns row which has value)
colnames(df)[which(df == "high", arr.ind = TRUE)[,"col"]] 
 (returns column names )

1 Ответ

0 голосов
/ 28 сентября 2018

Вы можете сделать это с помощью tidyverse:

df %>% mutate(row=row_number()) %>%
  gather(k,v,-row) %>% filter(v %in% c("low","high")) %>% 
  group_by(row,v) %>% summarize(k=paste(k,collapse=",")) %>%
  summarize(r=paste(paste(k,v,sep='='),collapse=", "))
## A tibble: 3 x 2
#    row r            
#  <int> <chr>        
#1     1 D=high       
#2     2 A,D=high     
#3     3 A=high, B=low
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...