使用R将数据框转换为表?

时间:2018-07-26 16:44:37

标签: r dataframe plotly

我很难理解R中的绘图表的工作方式。我不是一位经验丰富的程序员,因此我的问题可能看起来很幼稚。

请考虑以下数据框:

data<-data.frame(
SeqName=c("1", "2", "3", "4", "5", "6"),
Length=c("440", "511", "1087", "686", "867", "632"),
Cys=c("3", "2", "2", "2", "2", "4"),
NT=c("[NA]", "[B]", "[B]", "[B]", "[B]", "[B]"),
NR=c("[NA]", "[B][M]", "[B]", "[B][M]", "[B][M]", "[NA]"),
RefSeq=c("[NA]", "[B][M]", "[B]", "[B][M]", "[B][M]", "[NA]")
)

我可以使用以下方法创建等效的绘图表:

plot_ly(
    type = 'table',
    header = list(
        values = list(list('<b>SeqName<b>'),
                      list('<b>Length<b>'),
                      list('<b>Cys<b>'),
                      list('<b>NT<b>'),
                      list('<b>NR<b>'),
                      list('<b>RefSeq<b>'))),
        cells = list(values = list(
        c("1", "2", "3", "4", "5", "6"),
        c("440", "511", "1087", "686", "867", "632"),
        c("3", "2", "2", "2", "2", "4"),
        c("[NA]", "[B]", "[B]", "[B]", "[B]", "[B]"),
        c("[NA]", "[B][M]", "[B]", "[B][M]", "[B][M]", "[NA]"),
        c("[NA]", "[B][M]", "[B]", "[B][M]", "[B][M]", "[NA]"))))

但是,我不能直接跳。例如,我无法执行以下操作:

plot_ly(type = 'table', header = list(values=names(data)), cells=list(list(values=data)))

请,任何人都可以澄清原因吗?预先感谢。

1 个答案:

答案 0 :(得分:3)

似乎plot_ly仅期望给cells参数给出的列表的values参数提供一个未命名列表,因此您可以通过在data.frame上使用unname来将其传递给它。 :

plot_ly(type="table",header=list(values=names(data)), cells=list(values=unname(data)))