วิธีแปลงตารางความถี่ให้เป็นเวกเตอร์ของค่าได้อย่างไร


13

การใช้ R หรือ Excel วิธีที่ง่ายที่สุดในการแปลงตารางความถี่เป็นเวกเตอร์ของค่าคืออะไร

เช่นคุณจะแปลงตารางความถี่ต่อไปนี้เป็นอย่างไร

Value   Frequency
  1.      2
  2.      1
  3.      4
  4.      2
  5.      1

ในเวกเตอร์ต่อไปนี้?

1, 1, 2, 3, 3, 3, 3, 4, 4, 5

คำตอบ:


21

ใน R คุณสามารถทำได้โดยใช้repคำสั่ง:

tab <- data.frame(value=c(1, 2, 3, 4, 5), freq=c(2, 1, 4, 2, 1))
vec <- rep(tab$value, tab$freq)

สิ่งนี้ให้ผลลัพธ์ต่อไปนี้:

> tab
  value freq
1     1    2
2     2    1
3     3    4
4     4    2
5     5    1

> vec
 [1] 1 1 2 3 3 3 3 4 4 5

สำหรับรายละเอียดดูแฟ้มความช่วยเหลือสำหรับคำสั่งโดยการพิมพ์rep?rep


2
หรือได้รับตารางความถี่ที่ง่ายสำหรับการvec <- sample(1:5, 20, TRUE)สร้างโดย:table() rep(names(table(vec)), table(vec))ผลลัพธ์จะต้องถูกแปลงด้วยas.numeric()หากหมวดหมู่เป็นตัวเลขจริง
caracal

1

เห็นได้ชัดว่าใน R มันง่ายกว่า

ใน Excel ฉันจะใช้คอลัมน์ตัวช่วย (ถ้าค่าเป็น A1):

  value freq help
1     1    2  =REPT(A2 & ", ",B2)
2     2    1  =C1 & REPT(A3 & ", ",B3)
3     3    4  (drag or copy from upper cell)
4     4    2  (drag or copy from upper cell)
5     5    1  (drag or copy from upper cell)
              =LEFT(C6, LEN(C6)-1)

ใน C7 คุณมีผลลัพธ์ของคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.