问题: 我需要从文本文件中提取数值,并将字符串转换为数值。
例如,在我的文本文件中:
基频:0.247 0.355 0.158 0.261
等等等等......alpha [0]:0.466477 rate [0] ac ag at cg ct gt:0.0987 2.4837 0.4734 0.4902 0.2713 1.0000
更多的话...... 文本文件结束。
我需要退出: 基数(向量,应为(0.247,0.355,0.158,0.261)) alpha(一个应该等于0.466477的变量) 速率(矢量应该等于(0.0987,2.4837,0.4734,0.4902))
我做了什么
library(tm)
#Read in text file
myfile <- "RAxML_info.gtr1"
mdata <- readLines(my file)
cline <- grep("Base frequencies:",mdata,value=TRUE)
as.vector(gsub("Base frequencies: ", "", cline))
[1]“0.247 0.335 0.158 0.261”
这只是作为一个字符串处理,我不能让它成为数值的向量。
使用RStudio和R版本3.3.1
答案 0 :(得分:0)
根据@ HubertL的评论,您可以使用strsplit
从您所在的位置到达您想去的地方:
line <- "0.247 0.335 0.158 0.261 "
line <- strsplit( line, split = " " )[[1]]
line <- as.numeric( line )
line
[1] 0.247 0.335 0.158 0.261
答案 1 :(得分:0)
output <- "0.247 0.335 0.158 0.261 "
as.numeric(unlist(strsplit(output, " ")))
[1] 0.247 0.335 0.158 0.261
答案 2 :(得分:0)
我们可以使用scan
scan(text=output, what = numeric(), quiet=TRUE)
#[1] 0.247 0.335 0.158 0.261
output <- "0.247 0.335 0.158 0.261 "