2013-03-22 132 views
1

如果我有一個列表,例如座標,我如何分別引用列表中每個元素的元素?R指向量列表中的向量的元素

coord=list(c(104,1.5),c(144.97,-37.78),c(121.5,25.03))

我想什麼做的是一樣的東西

for(i in coord){ 
print(i[1]) 
print(i[2])} 

上面的例子不工作 (當然,在實踐中,我會用它來繪製的東西)。

下面的工作,但我試圖看看是否有一個更優雅的'R'方式來做到這一點。

coord=c(c(104,1.5),c(144.97,-37.78),c(121.5,25.03)) 
for(i in seq(1,length(coord),2)){ 
print(coord[i]) 
print(coord[i+1]) 
} 
+0

'coord'的兩個定義產生(a)一個三元素列表和(b)一個6元素向量。 – mnel 2013-03-22 01:04:56

+0

爲什麼第一個不起作用? – Rcoster 2013-03-22 01:16:54

+0

hi @mnel,沒錯。我正在尋找一種簡單的方法,例如從第一個示例的每個元素中獲取x和y座標。 – 2013-03-22 02:41:59

回答

1

我不太清楚你想要什麼......

你不想這麼做嗎?

> coord[[1]][1] 
[1] 104 
+0

這正是我所追求的。謝謝 – 2013-03-22 05:53:33

+0

酷!很高興我能幫上忙 – ruisea 2013-03-22 07:46:05

2

我想你只是需要unlist

unlist(coord) 
## [1] 104.00 1.50 144.97 -37.78 121.50 25.03 

如果你正在尋找他們提取物作爲2個數據繪製,那麼你應該投unlist版數據matrix

plot(matrix(unlist(coord), ncol = 2, byrow=TRUE)) 

這應該給你的數字如下

enter image description here

+0

謝謝@geektrader,'unlist(i [1])[1]'絕對是一個解決方案,但它感覺有點迂迴。如果有更優雅的東西沒有出現,我會標記出來。 – 2013-03-22 02:43:18