2017-02-21 26 views
0

У меня есть data.frame, называемый «fdr». Это выглядит так:Как покрасить ячейки по значению в data.frame?

  pi  pd  aa  ef 
gene1 0.78 0.04 0.89 0.01 
gene2 0.06 0.95 0.02 0.03 
gene3 0.98 0.07 0.03 0.23 

Теперь я хочу покрасить все ячейки размером менее 0,05 в красном. Как я могу это сделать?

+5

Вам нужно будет расширить это довольно много. «Раскрашивание ячеек в кадре данных» - это своего рода бессмысленная концепция в R, если вы не говорите о отображении фрейма данных в таблице HTML или не экспортируете его в какой-либо другой конкретный формат, который поддерживает таблицу, такую ​​как интерфейс. И в этих случаях вам нужно будет объяснить, как именно вы собираетесь просматривать данные, какие пакеты вы используете и т. Д. – joran

+0

Я использую функцию grid.table и функцию heatmap.2. –

+0

Хорошо, тогда в дополнение к варианту ниже рассмотрим вопрос [это] (http://stackoverflow.com/q/18663159/324364), может быть? Или [это] (http://stackoverflow.com/q/23819209/324364), или [это] (http://stackoverflow.com/q/18414001/324364)? – joran

ответ

1

Для будущих вопросов распечатайте результат dput (fdr). Это немного облегчит ответ другим.

Рассмотрите возможность использования formattable package.

formattable(df, list(
    pi = formatter("span", style = x ~ ifelse(x < 0.05, style(color = "red", font.weight = "bold"), NA)), 
    pd = formatter("span", style = x ~ ifelse(x < 0.05, style(color = "red", font.weight = "bold"), NA)), 
    aa = formatter("span", style = x ~ ifelse(x < 0.05, style(color = "red", font.weight = "bold"), NA)), 
    ef = formatter("span", style = x ~ ifelse(x < 0.05, style(color = "red", font.weight = "bold"), NA)) 
)) 

Результат выглядит следующим образом:
enter image description here

Это не в полной мере добиться того, что вы хотите (с точки зрения окраски клеток). Но кажется, что вы пытались выделить конкретные случаи (< 0.05), и это определенно отражает это.

+0

Спасибо! Но есть ошибка в форматеC (0.42, 0.43, 0.05, 0, 0, 0, 0.56, 0.11, 0.03, 0.55,: (list) объект не может быть изменен на целое –