แยกแถวออกจากวัตถุตาราง

ฉันต้องการทราบวิธีรับแถวเฉพาะจากตารางใน R ตัวอย่างเช่น

> a <- c(13,13, 
    14,14,14,14,14,14,
    15,15,15,15,15,15,
    16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,
    17,17,17,17,17,17,17,
    18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,
    19,19,19,19,19,19,19,19,19,19,19,
    20,20,20,20,20,20,20,20,20,
    21,21,21,21,21,21,21,21,21,21,21,
    22,22,22,22,22,22,22,22,22,
    23,23,23,24,25,25,27)
> table(a)
a
13 14 15 16 17 18 19 20 21 22 23 24 25 27 
2  6  6 15  7 17 11  9 11  9  3  1  2  1 

ฉันจะแยกแถวสุดท้ายของตารางได้อย่างไร


r row
person CoolKiffings    schedule 11.04.2012    source แหล่งที่มา


คำตอบ (1)


ฟังก์ชัน str() ช่วยให้คุณสามารถซักถามโครงสร้างของวัตถุได้

str(table(a))
# 'table' int [1:14(1d)] 2 6 6 15 7 17 11 9 11 9 ...
# - attr(*, "dimnames")=List of 1
#  ..$ a: chr [1:14] "13" "14" "15" "16" ...

ออบเจ็กต์ ตาราง ของคุณคล้ายกับเวกเตอร์ (เพียงแต่มีแท็ก/แอตทริบิวต์เพิ่มเติมบางส่วน) สิ่งสำคัญที่สุดคือคุณสามารถเข้าถึงองค์ประกอบต่างๆ ได้ตามปกติ:

R> b = table(a)
##To get the numerical values
R> as.vector(b)
 [1]  2  6  6 15  7 17 11  9 11  9  3  1  2  1
##To get the names
R> names(b)
 [1] "13" "14" "15" "16" "17" "18" "19" "20" "21" "22" "23" "24" "25" "27"

นอกจากนี้เรายังสามารถใช้กฎการตั้งค่าย่อยมาตรฐานได้

##Get the last element in the named vector
R> b[length(b)]
27 
 1 
R> names(b)[length(b)]
[1] "27"
person csgillespie    schedule 11.04.2012
comment
ดูตัวอย่างภายใต้ ?table ด้วย อาจมีหลายแถว ทั้งนี้ขึ้นอยู่กับจำนวนปัจจัย และแน่นอนว่าคุณจะต้องเลือกแถวสุดท้ายที่มี b[dim(b)[1],] - person Carl Witthoft; 11.04.2012
comment
มันไม่ได้เป็นแค่เวกเตอร์ที่มีชื่อเท่านั้น เนื่องจากฟังก์ชันอย่าง qplot จะไม่ถือว่าเป็นเวกเตอร์เลย - person JelenaČuklina; 06.04.2018
comment
@ Jelena-bioinf คุณพูดถูก ฉันได้อัปเดตคำตอบแล้ว - person csgillespie; 06.04.2018