Как выделить клетки Excel в R - PullRequest
0 голосов
/ 01 апреля 2019

Итак, у меня есть куча данных, которые я просматриваю. В прошлом я использовал openxlsx, чтобы выделить целые строки. Я хочу немного увеличить его и выделить конкретные ячейки. Вот пример формата данных, с которыми я работаю

df <- structure(list(Name = c("ENSCAFG00000000019","ENSCAFG00000000052", "ENSCAFG00000000094","ENSCAFG00000000210"), baseMean = c(692.430970065448, 391.533849079888, 1223.74083601928, 280.477417588943), log2FoldChange = c("0.0819834415495699", "-2.6249568393179099", "6.15181461329998", "0.23483770613468" ), lfcSE = c("0.247177913269579", "0.65059275393549898", "0.33371763683349598", "0.353449339778654"), stat = c("4.3773467751931898", "-4.0347157625707997", "3.4514646101088902", "3.4936766522410099"), pvalue = c("1.20132758621478E-5", "5.4668435006169397E-5", "5.5755287106466398E-4", "4.7641767052765697E-4"), padj = c("9.8372077245438908E-4", "0.00004", "0.000006", "1.47480018315951E-2"), symbol = c("ZNF516", "CDH19", "LMAN1", "NA"), entrez = c("483930", "483948", "476186", "NA")), .Names = c("Names", "baseMean", "log2FoldChange", "lfcSE", "stat", "pvalue", "padj", "symbol", "entrez"), row.names = c(NA, -4L), class = c("tbl_df", "tbl", "data.frame"))

Итак, я хочу выделить ячейки в log2FoldChange, которые имеют <= -1 или> = 1, и выделить ячейки, которые <= 0,05. Это то, что можно сделать? Я много читал о выделении строк, но не о конкретных ячейках с условием. </p>

enter image description here

Это то, на что я надеюсь получить данные, чтобы они выглядели. log2Foldchange и padj не должны составлять, как в примере выше.

Заранее спасибо

1 Ответ

1 голос
/ 01 апреля 2019

Вот один пример.Однако обратите внимание, что все ячейки в столбце padj имеют значения ниже 0,05.

library(openxlsx)

# note that some columns of df look numeric, but are character
df <- data.frame(
    Name = c("ENSCAFG00000000019","ENSCAFG00000000052", "ENSCAFG00000000094","ENSCAFG00000000210"), 
    baseMean = c(692.430970065448, 391.533849079888, 1223.74083601928, 280.477417588943), 
    log2FoldChange = c(0.0819834415495699, -2.6249568393179099, 6.15181461329998, 0.23483770613468), 
    lfcSE = c(0.247177913269579, 0.65059275393549898, 0.33371763683349598, 0.353449339778654), 
    stat = c(4.3773467751931898, -4.0347157625707997, 3.4514646101088902, 3.4936766522410099), 
    pvalue = c(1.20132758621478E-5, 5.4668435006169397E-5, 5.5755287106466398E-4, 4.7641767052765697E-4), 
    padj = c(9.8372077245438908E-4, 0.00004, 0.000006, 1.47480018315951E-2), 
    symbol = c("ZNF516", "CDH19", "LMAN1", "NA"), entrez = c("483930", "483948", "476186", "NA"),
    stringsAsFactors=FALSE
)

# write dataset
wb <- createWorkbook()
addWorksheet(wb, sheetName="df")
writeData(wb, sheet="df", x=df)

# define style
yellow_style <- createStyle(fgFill="#FFFF00")

# log2FoldChange
y <- which(colnames(df)=="log2FoldChange")
x <- which(abs(df$log2FoldChange)>=1)
addStyle(wb, sheet="df", style=yellow_style, rows=x+1, cols=y, gridExpand=TRUE) # +1 for header line

# padj
y <- which(colnames(df)=="padj")
x <- which(abs(df$padj)<=0.05)
addStyle(wb, sheet="df", style=yellow_style, rows=x+1, cols=y, gridExpand=TRUE) # +1 for header line

# write result
saveWorkbook(wb, "yellow.xlsx", overwrite=TRUE)

Возможно, вы также захотите взглянуть на BERT .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...