tôi có một danh sách trong R với các yếu tố sau:Làm thế nào để trích xuất các phần tử từ một danh sách với các yếu tố hỗn hợp
[[812]]
[1] "" "668" "12345_s_at" "667" "4.899777748"
[6] "49.53333333" "10.10930207" "1.598228663" "5.087437057"
[[813]]
[1] "" "376" "6789_at" "375" "4.899655078"
[6] "136.3333333" "27.82508792" "2.20223398" "5.087437057"
[[814]]
[1] "" "19265" "12351_s_at" "19264" "4.897730912"
[6] "889.3666667" "181.5874908" "1.846451572" "5.087437057"
Tôi biết tôi có thể truy cập chúng với một cái gì đó giống như list_elem[[814]][3]
trong trường hợp mà tôi muốn trích xuất thứ ba phần tử của vị trí 814. Tôi cần trích xuất phần tử thứ ba của tất cả danh sách, ví dụ 12345_s_at
và tôi muốn đặt chúng trong một vectơ hoặc danh sách để tôi có thể so sánh các phần tử của chúng với danh sách khác sau này. Dưới đây là mã của tôi:
elem<-(c(listdata))
lp<-length(elem)
for (i in 1:lp)
{
newlist<-c(listdata[[i]][3]) ###maybe to put in a vector
print(newlist)
}
Khi tôi in kết quả tôi nhận được yếu tố thứ ba, nhưng như thế này:
[1] "1417365_a_at"
[1] "1416336_s_at"
[1] "1416044_at"
[1] "1451201_s_at"
vì vậy tôi không thể đi qua chúng với một chỉ số như newlist[3]
, bởi vì nó sẽ trả về NA
. Sai lầm của tôi đâu rồi?
Sử dụng 'sapply' để tránh phần 'không công khai'. Ngoài ra, tôi nghĩ rằng '[' sẽ đủ. +1 – GSee