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

时间:2014-10-01 17:56:09

标签: r csv matrix plot ggplot2

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

h1,h2,h3,h4
a,1,0,1,0
b,1,1,0,1
c,0,0,1,0

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

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

我的示例数据有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)

3 个答案:

答案 0 :(得分:30)

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

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

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

require(reshape2)
mat$id <- rownames(mat) 
melt(mat)

答案 1 :(得分:8)

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

df<-data.frame(words = unlist(words))

单词是一个字符列表。

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

答案 2 :(得分:2)

虽然这不是你问题的直接答案,但我遇到了类似的问题,并且我以为我提到了这个问题:

我有一个实例,它为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
  )
)

结果......这是= NULL。当我切换到= NA时,它工作正常。以防其他有类似问题的人像我一样点击这篇文章。