46

stringsAsFactors=FALSEに引数( )を渡したいのですrbinddo.call。ただし、以下は機能しません。

data <- do.call(rbind, 
          strsplit(readLines("/home/jianfezhang/adoption.txt"), split="\t#\t"), 
          args=list(stringsAsFactors=FALSE))
4

3 に答える 3

34
do.call(rbind.data.frame, c(list(iris), list(iris), stringsAsFactors=FALSE))

rbindどうしたらいいのかわからないという事実がなかったら、私の答えだったでしょうstringsAsFactors(しかしcbind.data.frameそうするでしょう)。

の出力strsplitはおそらくベクトルのリストであり、その場合rbindは行列が作成されます。stringsAsFactorsこの行列をdata.frameに変換するときに指定できます。

data.frame(do.call(rbind, list(1:10, letters[1:10])), stringsAsFactors=FALSE)
于 2012-04-12T08:40:59.670 に答える
7

または、次を使用してグローバルに設定stringsAsFactorsすることもできます。FALSEoptions

options(stringsAsFactors=FALSE)

これをスクリプトの先頭に設定すると、スクリプト全体でこれが適用されます。を追加し.Rprofileて、開くすべてのRセッションにこのオプションを設定することもできます。

于 2012-04-12T08:45:21.987 に答える
6

関数呼び出しが有効かどうかはわかりませんが、次のことを試してください。

data <- do.call(rbind,
  c(strsplit(readLines("/home/jianfezhang/adoption.txt"),split="\t#\t"),
  list(stringsAsFactors=FALSE))

do.call1つのリストを介してすべての引数を渡す必要があります。あなたは2つのリストを連結することができますc

> c(list(1, 2), list(3, 4))
[[1]]
[1] 1

[[2]]
[1] 2

[[3]]
[1] 3

[[4]]
[1] 4
于 2012-04-12T08:28:20.143 に答える