嗨,大家好,我希望这个主题足够清楚,我在前面提到过的bin中没有找到任何具体的内容.我试过在Perl或Python中实现它,但我想我可能会努力.
是否有一个简单的shell命令/管道将基于开始和结束正则表达式将我的4mb .txt文件拆分成单独的.txt文件?
我提供了以下文件的简短示例..因此您可以看到每个"故事"都以短语"X XXX of XXX DOCUMENTS"开头,可以用来分割文件.
我认为这应该很容易,如果bash不能这样做我会感到惊讶 - 比Perl/Py更快.
这里是:
1 of 999 DOCUMENTS
Copyright 2011 Virginian-Pilot Companies LLC
All Rights Reserved
The Virginian-Pilot(Norfolk, VA.)
...
3 of 999 DOCUMENTS
Copyright 2011 Canwest News Service
All Rights Reserved
Canwest News Service
...
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助.
罗斯
感谢您的耐心等待.
我正在处理详细介绍患者和药物的大型数据集.
药物很难编码,因为它们(通常)没有意义,除非与剂量匹配.
我有一个带载体的数据框(Drug1,Drug2 ..... Drug 16),其中个体患者用行表示.载体实际上是因子,具有100个可能的水平(患者可以使用的所有药物).
我想做的就是产生一个逻辑向量(TTTTFFFFTTT ......),然后我可以将其转换成一个数据帧,告诉我患者是否患有特定的药物.
然后,我可以使用特别重要的药物存在或不存在作为模型中的分类协变量.
我试过grep,沿着行搜索,我可以生成一个标识符向量,但我似乎无法生成逻辑向量.
我意识到我做错了什么.
names(drugindex)
[1] "book.MRN" "DRUG1" "DRUG2" "DRUG3" "DRUG4" "DRUG5"
[7] "DRUG6" "DRUG7" "DRUG8" "DRUG9" "DRUG10" "DRUG11"
[13] "DRUG12" "DRUG13" "DRUG14" "DRUG15" "DRUG16"
> truvec<-drugindex$book.MRN[as.vector(unlist(apply(drugindex[,2:17], 2, grep, pattern="Lamotrigine")))]
> truvec
truvec
[1] 0024633 0008291 0008469 0030599 0027667
37 Levels: 0008291 0008469 0010188 0014217 0014439 0015822 ... 0034262
> head(drugindex)
book.MRN DRUG1 DRUG2 DRUG3 DRUG4 DRUG5
4 0008291 Venlafaxine Procyclidine Flunitrazepam Amisulpiride Clozapine
31 0008469 Venlafaxine Mirtazapine Lithium Olanzapine Metoprolol
3 …Run Code Online (Sandbox Code Playgroud) 我本质上是试图将无序数据变成长形式的线性建模.
我有2个data.frames"rec"和"book"
"book"中的每一行都需要根据行中的两个变量粘贴到几行"rec"的末尾:"MRN"和"COURSE"匹配.
我尝试了以下和其中的变化无济于事:
i=1
newlist=list()
colnames(newlist)=colnames(book)
for ( i in 1:dim(rec)[1]) {
mrn=as.numeric(as.vector(rec$MRN[i]));
course=as.character(rec$COURSE[i]);
get.vector<-as.vector(((as.numeric(as.vector(book$MRN))==mrn) & (as.character(book$COURSE)==course)))
newlist[i]<-book[get.vector,]
i=i+1;
}
Run Code Online (Sandbox Code Playgroud)
如果有人有任何建议
1)让它工作2)使它更优雅(或者可能只是不那么笨拙)
如果我不清楚,请求你的赦免.
我知道我没有合并上面的任何数据,我想如果我能生成一个长格式的data.frame我可以自己组合它们
请指教 - 我将把它作为学习点.我是初学者.
我正在将一个25mb的文件拆分成几个较小的文件.
一位善良的大师在这里给了我一个Ruby sript.它的工作速度非常快.所以,为了学习我用python脚本模仿它.这就像一只三条腿的猫(慢).我想知道是否有人可以告诉我为什么?
我的python脚本
##split a file into smaller files
###########################################
def splitlines (file) :
fileNo=0001
outFile=open("C:\\Users\\dunner7\\Desktop\\Textomics\\Media\\LexisNexus\\ele\\newdocs\%s.txt" % fileNo, 'a') ## open file to append
fh = open(file, "r") ## open the file for reading
mylines = fh.readlines() ### read in lines
for line in mylines: ## for each line
if re.search("Copyright ", line): # if the line is equal to the regex
outFile.close() ## close the file
fileNo +=1 #and add one to the filename, starting …Run Code Online (Sandbox Code Playgroud)