xrdml2df <- function(xfile, xdir = "wd" ) { require(stringr) if(xdir == "wd") { xdir <- getwd() } if(str_sub(xdir,-1,-1)!="/"){ xdir <- paste0(xdir,"/") } xrdmlRaw <- readLines(paste0(xdir, xfile)) twothet0 <- grep("2Theta", xrdmlRaw) beg0 <- xrdmlRaw[twothet0 + 1] beg0 <- gsub("\t\t\t\t\t", "", beg0) beg0 <- gsub("", "", beg0) beg0 <- as.numeric(beg0) end0 <- xrdmlRaw[twothet0 + 2] end0 <- gsub("\t\t\t\t\t", "", end0) end0 <- gsub("", "", end0) end0 <- as.numeric(end0) c0 <- grep("', "", xrdmlRaw[c0]) xrdmlRaw[c0] <- gsub("", "", xrdmlRaw[c0]) counts <- as.numeric(unlist(strsplit(xrdmlRaw[c0], " "))) counts2theta <- data.frame(Angle = seq(beg0, end0, ((end0 - beg0) / (length(counts) - 1))), Counts = counts) rm(list = c("xrdmlRaw","twothet0","beg0","end0","c0","counts")) return(counts2theta) }