【问题标题】:"names do not match previous names" & "length of 'dimnames' [2] not equal to array extent" in r“名称与以前的名称不匹配”和“'dimnames'[2] 的长度不等于数组范围”在 r
【发布时间】:2017-03-18 09:45:12
【问题描述】:

我是初学者 所以我有一个大问题。T.T

让我给你看我的脚本

test_call = read_excel(path="E:\\matrix.xlsx", sheet="Sheet1", col_names=TRUE)
df <-  data.frame(test_call)
df2 <-as.data.frame.matrix(table(df))
n <- nrow(df2)
m <- ncol(df2)
rownames(A) <- 1:n
colnames(A) <- 1:m
B <- rbind(cbind(matrix(0,n,n),df2),cbind(t(df2),matrix(0,m,m)))

第一个问题是当我运行“n 1 的长度不等于数组范围” 我想我计算行数并将这些值放入我的行和列的名称中 我不知道为什么。 第二个问题是当我运行“B

【问题讨论】:

    标签: r


    【解决方案1】:

    不完全确定你想在那里做什么,没有看到你的数据是什么,你的结局是什么。

    什么是矩阵A?

    但是这样的事情有可能对你有用吗?

    test_call = read_excel(path="E:\\matrix.xlsx",
                           sheet="Sheet1", 
                           col_names=TRUE)
    df <-  data.frame(test_call)
    df2 <-as.matrix(table(df))
    n <- nrow(df2)
    m <- ncol(df2)
    rownames(df2) <- 1:n
    colnames(df2) <- 1:m
    B <- rbind(cbind(matrix(0,n,n),df2),cbind(t(df2),matrix(0,m,m)))
    

    根据您要如何调用列,您还可以执行以下操作:

    rownames(df2) <- NULL
    colnames(df2) <- NULL
    B <- rbind(cbind(matrix(0,n,n),df2),cbind(t(df2),matrix(0,m,m)))
    colnames(B) <- 1:(n+m)
    rownames(B) <- 1:(n+m)
    

    【讨论】:

    • 你真的很棒。我犯了一个错误。你说的对。但是当我使用“B
    • 你能分享一下数据吗?还是您的数据样本?您可以使用 r 中的 dput 函数轻松分享 data.frame(test_call) 的样子。
    • 如何将我的数据发送给您??
    • 在 R 中,使用:dput(data.frame(test_call))
    • 输出很长.T.T
    猜你喜欢
    • 2016-12-01
    • 1970-01-01
    • 2014-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-08
    • 2016-06-25
    • 1970-01-01
    相关资源
    最近更新 更多