(वाह, इस कार्य को अविश्वसनीय रूप से भद्दा और दर्दनाक अजगर की तुलना में है। Anyhoo ...)
पी एस मैं देख रहा हूँ अब अपने मुख्य आशय-स्ट्रिंग का एक वेक्टर सूचकांक के जोड़े में लंबाई कन्वर्ट करने के लिए किया गया था। आप cumsum()
इस्तेमाल कर सकते हैं, तो सभी को एक साथ सूचकांक क्रमबद्ध करें:
ll <- c(2,3,5,1,4)
sort(c(1, cumsum(ll), (cumsum(ll)+1)[1:(length(ll)-1)]))
# now extract these as pairs.
लेकिन यह काफी दर्दनाक है। इसके लिए flodel का उत्तर बेहतर है।
डी.एफ. में विभाजित करने के वास्तविक कार्य के रूप में स्तंभ, और कि कुशलता से कर रही है:
stringr::str_sub()
साथ plyr::ddply()
/ldply
require(plyr)
require(stringr)
df <- data.frame(value=c(360010001001002,360010001001004,360010001001005,360010001001006))
df$valc = as.character(df$value)
df <- ddply(df, .(value), mutate, chk1=str_sub(valc,1,2), chk3=str_sub(valc,3,5), chk6=str_sub(valc,6,10), chk11=str_sub(valc,11,11), chk14=str_sub(valc,12,15))
# value valc chk1 chk3 chk6 chk11 chk14
# 1 360010001001002 360010001001002 36 001 00010 0 1002
# 2 360010001001004 360010001001004 36 001 00010 0 1004
# 3 360010001001005 360010001001005 36 001 00010 0 1005
# 4 360010001001006 360010001001006 36 001 00010 0 1006
है आपका मुख्य आशय क) के लिए ** एक कन्वर्ट इंडेक्स के जोड़े में सबस्ट्रिंग लम्बाई का वेक्टर ** या बी) ** डीएफ में विभाजित कॉलम, और कुशलता से ऐसा करना **: नए अलग डीएफ के रूप में भाग को तोड़ दें। कॉलम (-> ddply (ट्रांसफॉर्म, ...)), या बस एक ही कॉलम पर कुछ स्ट्रिंग मैनिपुलेशन (उदा। '-') डालें? (-> ldply) – smci
मेरी समस्या लंबे समय से हल हो गई है, लेकिन जब से आपने पूछा ... हाँ: मैं उन हिस्सों को अलग कॉलम के रूप में चाहता था। वे एक आईडी नंबर हैं। मुझे वापस जाना होगा और बिल्कुल दिखना होगा, लेकिन भाग का अर्थ है: '36' राज्य है, '001' काउंटी,' 00010 'जनगणना ब्लॉक या कुछ। – Amanda
सही, लेकिन मेरा प्रश्न ए) क्या यह वास्तव में आपके लिए कोई फर्क नहीं पड़ता कि क्या आप इंडेक्स के सादे पुराने जोड़े के बजाय 'चौड़ाई = सी (2,3,5,1,4) 'के मनमानी वेक्टर निर्दिष्ट करते हैं: (1 , 2), (3,5), (6,10), (11,11), (12,15)। कई उत्तरदाताओं ने इस बात पर लटका दिया कि क्या संचयी-सूचकांक-अंकगणित आपके प्रश्न का एक प्रमुख हिस्सा था। बाहर निकलता है यह नहीं था। आप स्पष्टता के लिए reword कर सकते हैं। – smci