"\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nChannels\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\ n\r\nDates\r\nSeptember 25th 2016 To September 26th 2016\r\n\r\n\r\nPlatform\r\nIDea\r\n\r\n\r\nCountry\r\nUnited States\r\n\r\n\r\nRestricted CountrIEs\r\n\r\n\t\t\t\t\t\t\t\t\tUnited States\t\t\t\t\t\t\t\t\r\n\r\n\r\nInitial Price\r\nChannels - Dates September 25th 2016 To September 26th 2016Platform IDeaCountry United StatesRestricted CountrIEs United StatesInitial Price.0692\r\n\r\n\r\n"library(stringr)input <- "\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nChannels\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nDates\r\nSeptember 25th 2016 To September 26th 2016\r\n\r\n\r\nPlatform\r\nIDea\r\n\r\n\r\nCountry\r\nUnited States\r\n\r\n\r\nRestricted CountrIEs\r\n\r\n\t\t\t\t\t\t\t\t\tUnited States\t\t\t\t\t\t\t\t\r\n\r\n\r\nInitial Price\r\n.0692\r\n\r\n\r\n"str_match(input,paste0("[[:space:]]*Channels[[:cntrl:]]+([[:print:]]+)?","[[:space:]]*Dates[[:cntrl:]]+([[:print:]]+)?","[[:space:]]*Platform[[:cntrl:]]+([[:print:]]+)?","[[:space:]]*Country[[:cntrl:]]+([[:print:]]+)?","[[:space:]]*Restricted CountrIEs[[:cntrl:]]+([[:print:]]+)?","[[:space:]]*Initial Price[[:cntrl:]]+([[:print:]]+)?","[[:space:]]*")).0692
现在,我想要摆脱的是:
我需要为大量观察执行此任务,然后将每个变量存储为所有观察的向量.因此,我不需要存储变量的名称(即“平台”),而只需存储结果(“想法”).但要做到这一点,我需要将“平台”变量名称作为“标识符”,我认为,因为文本中变量的位置随着观察结果的变化而变化(变量的数量也只是略有变化).
现在,我认为stringr包是一个很好的方法,但我没有找到一个方便的方法来做到这一点.
解决方法 以下正则表达式提取您想要的值.这些值存储在结果矩阵的第2-7列中.代码使用输入向量(每个条目在矩阵中形成一个新行)编辑:对不起,我忽略了文本中变量的位置可以在不同输入之间变化.在这种情况下,您无法使用此方法一次性轻松提取所有变量.但是,您仍然可以使用上面的正则表达式中的相应行逐个提取它们.如果一个变量不存在(如你的例子中的“Channels”),这不是一个问题 – 它将显示为NA).
总结以上是内存溢出为你收集整理的从凌乱的大量数据中提取值全部内容,希望文章能够帮你解决从凌乱的大量数据中提取值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)