将索引表转换为字符矩阵(或df)?在R

时间:2015-04-24 01:21:24

标签: r matrix indexing

我不断收到奇怪的错误。逻辑对我来说似乎很合理。你能看一下下面的代码并提供一些见解吗?感谢。

    rw      <- c(1,1,1,2,2,2,3,3,3)
    cl      <- c(1,2,3,1,2,3,1,2,3)
    ch      <- c("A","bv","c","dog","cat","bird","red", "yel","fuscia")
    df      <- data.frame(rw, cl, ch)
    df
    layout  <- matrix(NA, nrow=3, ncol=3)
    layout[df[,1:2]] <- df[,3]

错误是:

Error in layout[df[, 1:2]] <- df[, 3] : invalid subscript type 'list'

1 个答案:

答案 0 :(得分:2)

坚持原始计划,矩阵索引需要matrix,而不是data.frame

layout[as.matrix(df[,1:2])] <- as.character(df[,3])

...将有效(经过一些调整以确保您的factor数据转换为character表格)。您的错误实际上是说您无法使用list(或data.frame,这是一种列表)进行索引。