आपको सबसे पहले एक data.frame कि सूची में उनके समतुल्य सूचकांक के मूल्यों के नक्शे में अपनी सूची बदल सकती है:
ll <- list(c("7", "12", "26", "29"),
c("11", "36"),
c("20", "49"),
c("39", "41"))
df <- data.frame(value = unlist(ll),
index = rep(seq_along(ll), lapply(ll, length)))
df
# value index
# 1 7 1
# 2 12 1
# 3 26 1
# 4 29 1
# 5 11 2
# 6 36 2
# 7 20 3
# 8 49 3
# 9 39 4
# 10 41 4
फिर, पहले घटित के सूचकांक को खोजने के लिए एक समारोह का उपयोग कर match
बारे में किसी दिए गए मूल्य का Rence:
find.idx <- function(val)df$index[match(val, df$value)]
आप इस समारोह के लिए एक एकल मूल्य पर कई एक समय में match
के बाद से कॉल कर सकते हैं, या vectorized है:
find.idx("36")
# [1] 2
find.idx(c("36", "41", "99"))
# [1] 2 4 NA
बेशक
, आप भी lapply
के माध्यम से चला सकते हैं समानांतर रूप से इसे चलाने के लिए विशेष रूप से यदि आप की योजना:
lapply(c("36", "41", "99"), find.idx)
# [[1]]
# [1] 2
#
# [[2]]
# [1] 4
#
# [[3]]
# [1] NA
समानांतर में यह पिछले सा चल रहा है के लिए, वहाँ कई, कई विकल्प हैं। मैं आपको http://cran.r-project.org/web/views/HighPerformanceComputing.html के माध्यम से खोज करके अपने विकल्पों का वजन करने की सलाह दूंगा।
शायद कुछ लापरवाही (घटक_सूची, फ़ंक्शन (x) कोई भी (मिलान (x, "36"))) 'आपको बंद कर देता है। –
आपका उदाहरण संदिग्ध है क्योंकि "36" दूसरी सूची तत्व और दूसरी सूची तत्व में दूसरा तत्व है। –