如果您能帮助我逐行阅读文本文件并跳过行(1,3,5,7(,我将不胜感激。
输入文件如下所示:
>Q5W0Q7|5-5|ength_1092
DMESPVFAFPKALDLETHIEKLFLY
>Q6PEW1|2-2|length_402
DDTLDDSDEDDIVVESQDPPLPSWG
>O43474|1-1|length_513
PRRETEEFNDLKALDFILSNSLTHP
>Q9UGC6|1-2|length_210
EKARMIYEDDETYLSPKEVSLDSRV
我只想保持第二、第四、第六、第八的成绩。像这样:
DMESPVFAFPKALDLETHIEKLFLY
DDTLDDSDEDDIVVESQDPPLPSWG
PRRETEEFNDLKALDFILSNSLTHP
EKARMIYEDDETYLSPKEVSLDSRV
然后,我想把每一行的字符串分割成单独的字符串。第一个例子:
D M E S P V F A F P K A L D L E T H I E K L F L Y
然后,每一行都将被单独保存在一个数据帧中。前两个示例:
df1 <- df(col1 = c('D', 'M' ,'E', 'S', 'P', 'V', 'F', 'A', 'F', 'P', 'K', 'A', 'L', 'D', 'L', 'E', 'T' ,'H', 'I', 'E', 'K' ,'L', 'F', 'L', 'Y'),
col2 = c('D','D','T','L','D','D','S','D','E','D','D','I','V','V','E','S','Q','D','P','P','L','P','S','W','G'))
我想出了这样的东西:(但它不起作用(
df1 <- n.readLines(paste("example1.txt"),
header = FALSE,
n = 1,
skip =1,3,5,7) %>% #doesn't skip
res_try <- strsplit(df1, "")[[1]] %>%
view(df1)
提前感谢您的帮助!
按照建议,我把输入作为一个列表。
行<-readLines('example1.txt'(lst1<-strsplit(gsub("\t",",行[c(TRUE,FALSE(](,"(
# changed a list into a data frame
dftry <- data.frame(matrix(unlist(lst1), nrow=length(lst1), byrow=T))
# transposed the data frame
df_trial <- as.data.frame(t(dftry))
df_trial$myfactor <- factor(row.names(dftry))
view(df_trial)
这里的问题是最后一行是18个字母,而序列是24个字母长。有什么建议吗?
我们使用readLines
读取数据
lines <- readLines('file.txt')
然后使用具有逻辑值的递归索引,并将其拆分为list
lst1 <- strsplit(gsub("t", "", lines[c(FALSE, TRUE)]), "")
lst1
#[[1]]
# [1] "D" "M" "E" "S" "P" "V" "F" "A" "F" "P" "K" "A" "L" "D" "L" "E" "T" "H" "I" "E" "K" "L" "F" "L" "Y"
#[[2]]
# [1] "D" "D" "T" "L" "D" "D" "S" "D" "E" "D" "D" "I" "V" "V" "E" "S" "Q" "D" "P" "P" "L" "P" "S" "W" "G"
#[[3]]
# [1] "P" "R" "R" "E" "T" "E" "E" "F" "N" "D" "L" "K" "A" "L" "D" "F" "I" "L" "S" "N" "S" "L" "T" "H" "P"
#[[4]]
# [1] "E" "K" "A" "R" "M" "I" "Y" "E" "D" "D" "E" "T" "Y" "L" "S" "P" "K" "E" "V" "S" "L" "D" "S" "R" "V"