web-dev-qa-db-ja.com

「引数は行数の違いを意味します:x、y」というエラーはどういう意味ですか?

私はこのような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)
38
abn

Data.frame matは長方形です(n_rows!= n_cols)。

したがって、data.frameの各列は同じ長さでなければならないため、列名と行名からdata.frameを作成することはできません。

おそらくこれで十分です:

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

私は同じエラーメッセージを持っていたので、次のコードでそれを修正することに成功しました。

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

wordsは文字リストです。

これは、誰かが出力をデータフレームにする必要がある場合に備えてです。

8
Simone

これはあなたの質問に対する直接的な答えではありませんが、私は同様の問題に遭遇したばかりで、それについて言及したと思いました。

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に切り替えたとき、うまくいきました。同様の問題を持つ他の誰かが私と同じようにこの投稿をヒットした場合に備えて。