แรงบันดาลใจจากโพสต์นี้ตอนนี้ฉันใช้ฟังก์ชั่นที่สะดวก
reproduce(<mydata>)
เมื่อฉันต้องการโพสต์ไปยัง StackOverflow
คำแนะนำอย่างรวดเร็ว
หากmyData
เป็นชื่อของวัตถุของคุณที่จะทำซ้ำเรียกใช้ต่อไปนี้ใน R:
install.packages("devtools")
library(devtools)
source_url("https://raw.github.com/rsaporta/pubR/gitbranch/reproduce.R")
reproduce(myData)
รายละเอียด:
ฟังก์ชั่นนี้เป็น wrapper อัจฉริยะสำหรับdput
ทำสิ่งต่อไปนี้
- ตัวอย่างชุดข้อมูลขนาดใหญ่โดยอัตโนมัติ (ขึ้นอยู่กับขนาดและคลาสสามารถปรับขนาดตัวอย่างได้)
- สร้าง
dput
ผลลัพธ์
- ช่วยให้คุณระบุที่คอลัมน์ที่จะส่งออก
- ต่อท้ายด้านหน้า
objName <- ...
เพื่อให้สามารถคัดลอก + วางได้อย่างง่ายดาย แต่ ...
- หากทำงานกับ mac เอาต์พุตจะถูกคัดลอกไปยังคลิปบอร์ดโดยอัตโนมัติเพื่อให้คุณสามารถเรียกใช้แล้ววางคำถามของคุณ
แหล่งที่มามีอยู่ที่นี่:
ตัวอย่าง:
# 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 มีค่าประมาณ 100 x 102 ฉันต้องการตัวอย่าง 10 แถวและคอลัมน์ที่เฉพาะเจาะจง
reproduce(DF, cols=c("id", "X1", "X73", "Class")) # I could also specify the column number.
ให้เอาต์พุตต่อไปนี้:
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==
โปรดสังเกตว่าผลลัพธ์ทั้งหมดอยู่ในบรรทัดเดียวยาวดีไม่ใช่ย่อหน้าที่สูงของเส้นที่มีการสับ สิ่งนี้ช่วยให้อ่านโพสต์คำถาม SO ได้ง่ายขึ้นและคัดลอก + วางได้ง่ายขึ้น
อัปเดต ต.ค. 2556:
ตอนนี้คุณสามารถระบุจำนวนบรรทัดของการส่งออกข้อความที่จะใช้ (เช่นสิ่งที่คุณจะวางลงใน StackOverflow) ใช้lines.out=n
อาร์กิวเมนต์สำหรับสิ่งนี้ ตัวอย่าง:
reproduce(DF, cols=c(1:3, 17, 23), lines.out=7)
อัตราผลตอบแทน:
==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==