R - 从多个 txt 文件中提取数值
R - Extracting numeric values from multiple txt files
我一直在尝试从多个文本文件中提取某些值。
dataFiles<-lapply(Sys.glob("treedata*SAMPLE01*ID97*.txt"),read.csv,header=FALSE)
dataFiles
data<-data.frame(dataFiles)
data[grepl("^DBHqsm",data$V1),]
data2<-data[grepl("^DBHqsm*",data$V1),]
data2
到目前为止,这给了我一个 data.frame 的字符串,我希望现在能够从中提取数字,包括小数点,尝试使用 regmatches 和 gregexpr,但删除了 .
V1 V1.1 V1.2 V1.3 V1.4
13 DBHqsm\t 0.05145 DBHqsm\t 0.05189 DBHqsm\t 0.05245 DBHqsm\t 0.05049 DBHqsm\t 0.05393
V1.5 V1.6 V1.7
13 DBHqsm\t 0.05126 DBHqsm\t 0.0506 DBHqsm\t 0.04977
感谢您的帮助!
下面的正则表达式删除了任意数量的数字之前的所有非数字字符,然后是一个点。
我们使用前瞻断言(?=)
注意我们需要perl = TRUE
.
如果您的数据始终遵循您显示的模式,它应该可以工作,例如:
gsub(x = "DBHqsm\t 0.05126", pattern = "\D*(?=\d*?\.)", replacement = "", perl = TRUE)```
而且,您当然可以这样做:
data.frame(
lapply(iris, function(x) {
gsub(x = x, pattern = "\D*(?=\d*?\.)", replacement = "", perl = TRUE))
})
)
我一直在尝试从多个文本文件中提取某些值。
dataFiles<-lapply(Sys.glob("treedata*SAMPLE01*ID97*.txt"),read.csv,header=FALSE)
dataFiles
data<-data.frame(dataFiles)
data[grepl("^DBHqsm",data$V1),]
data2<-data[grepl("^DBHqsm*",data$V1),]
data2
到目前为止,这给了我一个 data.frame 的字符串,我希望现在能够从中提取数字,包括小数点,尝试使用 regmatches 和 gregexpr,但删除了 .
V1 V1.1 V1.2 V1.3 V1.4
13 DBHqsm\t 0.05145 DBHqsm\t 0.05189 DBHqsm\t 0.05245 DBHqsm\t 0.05049 DBHqsm\t 0.05393
V1.5 V1.6 V1.7
13 DBHqsm\t 0.05126 DBHqsm\t 0.0506 DBHqsm\t 0.04977
感谢您的帮助!
下面的正则表达式删除了任意数量的数字之前的所有非数字字符,然后是一个点。
我们使用前瞻断言(?=)
注意我们需要perl = TRUE
.
如果您的数据始终遵循您显示的模式,它应该可以工作,例如:
gsub(x = "DBHqsm\t 0.05126", pattern = "\D*(?=\d*?\.)", replacement = "", perl = TRUE)```
而且,您当然可以这样做:
data.frame(
lapply(iris, function(x) {
gsub(x = x, pattern = "\D*(?=\d*?\.)", replacement = "", perl = TRUE))
})
)