错误"参数意味着行数不同:x,y"是什么意思?

abn*_*abn 40 csv plot r matrix ggplot2

我正在尝试使用csv文件的元素创建一个图,如下所示:

h1,h2,h3,h4
a,1,0,1,0
b,1,1,0,1
c,0,0,1,0
Run Code Online (Sandbox Code Playgroud)

我尝试了以下代码,但收到错误说

Error in data.frame(id = varieties, attr(mat, "row.names"), check.rows = FALSE) : 
  arguments imply differing number of rows: 8, 20 
Run Code Online (Sandbox Code Playgroud)

我的示例数据有8列和20行(不包括标题和行名称).我尝试在线查找并尝试实施一些修复,但问题仍然存在.我真的很感激任何帮助.

mat <- read.csv("trial.csv", header=T, row.names=1)
varieties = names(mat)
df <- data.frame(id=varieties,attr(mat, "row.names"), check.rows= FALSE)
Run Code Online (Sandbox Code Playgroud)

EDi*_*EDi 30

您的data.frame mat是矩形的(n_rows!= n_cols).

因此,您无法data.frame从列和列表中删除,因为data.frame中的每列必须具有相同的长度.

也许这足以满足您的需求:

require(reshape2)
mat$id <- rownames(mat) 
melt(mat)
Run Code Online (Sandbox Code Playgroud)

  • 为什么这是一个问题?我从来没有遇到过矩形数据框的问题。老实说,我怀疑它们中的任何一个都具有与列相同数量的行。 (6认同)

Jos*_*tte 10

虽然这不是您问题的直接答案,但我刚刚遇到了类似的问题,并认为我已经提到过:

我有一个实例,它正在为 data.frame(递归搜索的结果)实例化一个新的(毫无疑问非常低效)记录,它给了我同样的错误。

我有这个:

return(
  data.frame(
    user_id = gift$email,
    sourced_from_agent_id = gift$source,
    method_used = method,
    given_to = gift$account,
    recurring_subscription_id = NULL,
    notes = notes,
    stringsAsFactors = FALSE
  )
)
Run Code Online (Sandbox Code Playgroud)

原来......它是= NULL。当我切换到 = NA 时,它运行良好。以防万一有类似问题的其他人像我一样点击这篇文章。


Sim*_*one 9

我有相同的错误消息所以我google了一点我设法使用以下代码修复它.

df<-data.frame(words = unlist(words))
Run Code Online (Sandbox Code Playgroud)

单词是一个字符列表.

这是为了防止其他人需要输出作为数据帧.