【问题标题】:R: Addressing multiple columns of data frame by nameR:按名称寻址多列数据框
【发布时间】:2013-04-20 10:51:09
【问题描述】:

我有一些数据集具有足够高的维度 (14),以至于一次成对地绘制会很痛苦。在这种情况下,我希望能够选择它们所在的数据框的一个子集,但我只知道如何按数字寻址列。回读代码时,这很烦人且不清楚:

partimat(MARKER ~ ., trim_data11[,c(1:5,NCOL(trim_data11))],method="qda")

我想做的是这样的事情,这是行不通的:

partimat(MARKER ~ ., trim_data11$(c(AF3,F7,P8,O1,O2,MARKER)),method="qda")

有没有办法做到这一点?

【问题讨论】:

    标签: r dataframe data-visualization


    【解决方案1】:

    您可以使用您怀疑的名称来称呼它们,只需将名称作为字符向量传递:

    partimat(MARKER ~ ., trim_data11[, c("AF3","F7","P8","O1","O2","MARKER") ],method="qda")
    

    举个简单的例子:

    df <- data.frame( x = runif(5) , y =runif(5) , z = runif(5) )
    df[,c("x","z")]
    #         x         z
    #1 0.5896444 0.1855764
    #2 0.3486369 0.4936727
    #3 0.1640928 0.1367027
    #4 0.3167399 0.6686943
    #5 0.7063566 0.6032699
    

    【讨论】:

    • 请注意,这也有效:df[c("x","z")] 也有效(但不适用于矩阵)。
    • @Maxim.K 是的,如果你想按行子集,你只需要使用,,但我总是把它作为一个好习惯。这种方法有效,因为df 是一个命名列表,而矩阵只是一个具有长度为2 的dim 属性的向量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-14
    • 2023-03-16
    • 2016-07-20
    • 2015-11-09
    相关资源
    最近更新 更多