我想通過一個字符串名稱來處理數據框的行,並且該表將按順序構建。我想做類似檢查數據框中是否存在行名稱?
> mytab <- data.frame(city=c("tokyo","delhi","lima"),price=c(9,8,7),row.names=1)
> mytab
price
tokyo 9
delhi 8
lima 7
> # I can add a new row
> mytab["london",] = 8.5
我現在需要檢查行名是否已經存在。
> mytab["ny",]
[1] NA
還有什麼更好的,我可以比
> if (is.na(mytab["ny",])) { mytab["ny",]=9;}
做其他因爲NA
否則可能會出現呢?
應該這樣做,但它看起來這將有'O(n)的'時間複雜度由於線性搜索,也可以是'O(n)的'由於形成'row.names(mytab)'而導致的空間複雜性。這是真的?無論如何,行名搜索總是線性搜索? – highBandWidth
@highBandWidth - sungam有一個相當快的答案,但每個查找的確是O(n)。你的評論讓我想知道:你是否想測試很多的rownames,如果是這樣,你可以一次完成嗎? – Tommy