Terinspirasi oleh posting ini, saya sekarang menggunakan fungsi praktis
reproduce(<mydata>)
ketika saya perlu memposting ke StackOverflow.
INSTRUKSI CEPAT
Jika myData
nama objek Anda untuk direproduksi, jalankan berikut ini di R:
install.packages("devtools")
library(devtools)
source_url("https://raw.github.com/rsaporta/pubR/gitbranch/reproduce.R")
reproduce(myData)
Detail:
Fungsi ini adalah pembungkus cerdas untuk dput
dan melakukan hal berikut:
- secara otomatis sampel kumpulan data besar (berdasarkan ukuran dan kelas. Ukuran sampel dapat disesuaikan)
- menciptakan
dput
output
- memungkinkan Anda menentukan kolom mana yang akan diekspor
- ditambahkan ke depannya
objName <- ...
sehingga dapat dengan mudah menyalin + menempel, tetapi ...
- Jika bekerja pada mac, output disalin secara otomatis ke clipboard, sehingga Anda bisa menjalankannya dan menempelkannya ke pertanyaan Anda.
Sumber tersedia di sini:
Contoh:
# sample data
DF <- data.frame(id=rep(LETTERS, each=4)[1:100], replicate(100, sample(1001, 100)), Class=sample(c("Yes", "No"), 100, TRUE))
DF sekitar 100 x 102. Saya ingin mencicipi 10 baris, dan beberapa kolom tertentu
reproduce(DF, cols=c("id", "X1", "X73", "Class")) # I could also specify the column number.
Memberikan hasil sebagai berikut:
This is what the sample looks like:
id X1 X73 Class
1 A 266 960 Yes
2 A 373 315 No Notice the selection split
3 A 573 208 No (which can be turned off)
4 A 907 850 Yes
5 B 202 46 Yes
6 B 895 969 Yes <~~~ 70 % of selection is from the top rows
7 B 940 928 No
98 Y 371 171 Yes
99 Y 733 364 Yes <~~~ 30 % of selection is from the bottom rows.
100 Y 546 641 No
==X==============================================================X==
Copy+Paste this part. (If on a Mac, it is already copied!)
==X==============================================================X==
DF <- structure(list(id = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 25L, 25L, 25L), .Label = c("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y"), class = "factor"), X1 = c(266L, 373L, 573L, 907L, 202L, 895L, 940L, 371L, 733L, 546L), X73 = c(960L, 315L, 208L, 850L, 46L, 969L, 928L, 171L, 364L, 641L), Class = structure(c(2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 1L), .Label = c("No", "Yes"), class = "factor")), .Names = c("id", "X1", "X73", "Class"), class = "data.frame", row.names = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 98L, 99L, 100L))
==X==============================================================X==
Perhatikan juga bahwa keseluruhan output dalam satu baris yang bagus, panjang, bukan paragraf tinggi dari garis yang dicacah. Ini membuatnya lebih mudah untuk membaca pada posting pertanyaan SO dan juga lebih mudah untuk menyalin + menempel.
Pembaruan Oktober 2013:
Anda sekarang dapat menentukan berapa banyak baris output teks akan mengambil (yaitu, apa yang akan Anda tempelkan ke StackOverflow). Gunakan lines.out=n
argumen untuk ini. Contoh:
reproduce(DF, cols=c(1:3, 17, 23), lines.out=7)
hasil:
==X==============================================================X==
Copy+Paste this part. (If on a Mac, it is already copied!)
==X==============================================================X==
DF <- structure(list(id = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 25L,25L, 25L), .Label
= c("A", "B", "C", "D", "E", "F", "G", "H","I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U","V", "W", "X", "Y"), class = "factor"),
X1 = c(809L, 81L, 862L,747L, 224L, 721L, 310L, 53L, 853L, 642L),
X2 = c(926L, 409L,825L, 702L, 803L, 63L, 319L, 941L, 598L, 830L),
X16 = c(447L,164L, 8L, 775L, 471L, 196L, 30L, 420L, 47L, 327L),
X22 = c(335L,164L, 503L, 407L, 662L, 139L, 111L, 721L, 340L, 178L)), .Names = c("id","X1",
"X2", "X16", "X22"), class = "data.frame", row.names = c(1L,2L, 3L, 4L, 5L, 6L, 7L, 98L, 99L, 100L))
==X==============================================================X==