0

一部の列にスペースを含むレベルが含まれるデータフレームがあります。データフレームを呼び出して結果をコピーして貼り付けると、read.table(text="")行ごとにスペースの数が異なるため、機能しません。では、最初にデータフレームをきれいに表示して、セパレータを指定して read.table にコピーして貼り付け、再現可能な例をすばやく作成するにはどうすればよいですか? また、自動分子回転 (1,2,3,...) を削除する方法は?

> tdat
     uL Intensity                      sample
1   6.0  29355.00 PCAM MCH LOW-atp,E1E2,UbK48
2   4.0  36034.00 PCAM MCH LOW-atp,E1E2,UbK48
3   2.0  42571.00 PCAM MCH LOW-atp,E1E2,UbK48
4   1.0  62325.00 PCAM MCH LOW-atp,E1E2,UbK48
5   0.5  79505.00 PCAM MCH LOW-atp,E1E2,UbK48
6  25.0  25190.00                    MCH Mild
7  20.0  19721.50                    MCH Mild

このデータフレームには 3 つの列があります。R で各列の間にセパレータを表示して、read.table を簡単に使用できるようにします。

4

3 に答える 3

2

あなたの主な関心事は再現可能な例を作ることであるように思われるので、それを考慮して、いくつかの解決策が思い浮かびます。

最初は使用することwrite.tableです:

> write.table(iris, row.names=F)
"Sepal.Length" "Sepal.Width" "Petal.Length" "Petal.Width" "Species"
5.1 3.5 1.4 0.2 "setosa"
4.9 3 1.4 0.2 "setosa"
4.7 3.2 1.3 0.2 "setosa"

2番目は使用することdputです:

> dput(iris[1:2, ])
structure(list(Sepal.Length = c(5.1, 4.9), Sepal.Width = c(3.5, 3), Petal.Length = c(1.4, 1.4), Petal.Width = c(0.2, 0.2), Species = structure(c(1L, 1L), .Label = c("setosa", "versicolor", "virginica"), class = "factor")), .Names = c("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width", "Species"), row.names = 1:2, class = "data.frame")

StackOverflow の誰かがこの出力をコピーして、名前を割り当てることができます。

> my.data <- structure(list(Sepal.Length = c(5.1, 4.9), Sepal.Width = c(3.5, 3), Petal.Length = c(1.4, 1.4), Petal.Width = c(0.2, 0.2), Species = structure(c(1L, 1L), .Label = c("setosa", "versicolor", "virginica"), class = "factor")), .Names = c("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width", "Species"), row.names = 1:2, class = "data.frame")
> my.data
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa

おそらく、次の質問を確認する必要があります: How to make a great R reprobible example?

于 2013-07-02T18:43:37.407 に答える
1

この質問は、現在表現されているため、あまり意味がありません。または、少なくとも、あなたが説明したことのユースケースを本当に考えることはできません.

それにもかかわらず、ここに回避策があります: と一緒に使用printしてくださいquote = TRUE。あなたの「tdat」で

> print(tdat, quote = TRUE)
      uL Intensity                        sample
1 " 6.0" "29355.0" "PCAM MCH LOW-atp,E1E2,UbK48"
2 " 4.0" "36034.0" "PCAM MCH LOW-atp,E1E2,UbK48"
3 " 2.0" "42571.0" "PCAM MCH LOW-atp,E1E2,UbK48"
4 " 1.0" "62325.0" "PCAM MCH LOW-atp,E1E2,UbK48"
5 " 0.5" "79505.0" "PCAM MCH LOW-atp,E1E2,UbK48"
6 "25.0" "25190.0"                    "MCH Mild"
7 "20.0" "19721.5"                    "MCH Mild"

これは、あなたが説明するように読み取ることができます:

## Note the single quote below
read.table(text = '<<the stuff you copied from print(tdat, quote = TRUE)>>', ...)

使用するすべての推奨事項dput()などは、おそらくあなたが見るべき方向です。

于 2013-07-02T18:45:30.630 に答える
1

Rオブジェクトをクリップボードにコピー/貼り付けすることに関するこの質問に対する最良の答えは、次のとおりです。

dput(tdat, file="clipboard")

これにより、クリップボードがファイル接続として使用され、手動のコピー/貼り付けが保存されます。

于 2013-07-02T19:12:03.730 に答える