从数据框中的变量名称中删除路径

时间:2017-04-06 09:28:32

标签: r

我把一个看起来像这样的函数放在一起,第一个注释行就是一个例子。最重要的是这里是set.path变量,我用它来设置函数的最初路径。

# igor.import(set.path = "~/Desktop/Experiment1 Folder/SCNavigator/Traces",
#                          set.pattern = "StepsCrop.ibw",
#                          remove.na = TRUE)


igor.multifile.import <- function(set.path, set.pattern, remove.na){
    {
        require("IgorR")
        require("reshape2")

        raw_list  <- list.files(path= set.path,
                                pattern= set.pattern,
                                recursive= TRUE,
                                full.names=TRUE)
        multi.read <- function(f) {                                      # Note that "temp.data" is just a placeholder in the function
            temp_data <- as.vector(read.ibw(f))                          # Change extension to match your data type
        }
        my_list           <- sapply(X = raw_list, FUN = multi.read)      # Takes all files gathered in raw_list and applies multi.read()
        my_list_combined  <- as.data.frame(do.call(rbind, my_list))

        my_list_rotated <- t(my_list_combined[nrow(my_list_combined):1,]) # Matrix form
        data_out <- melt(my_list_rotated)                                 # "Long form", readable by ggplot2
        data_out$frame <- gsub("V", "", data_out$Var1)
        data_out$name  <- gsub(set.path, "", data_out$Var2) # FIX THIS
    }
    if (remove.na == TRUE){
    set_name <- na.omit(data_out)
    } else if (remove.na == FALSE) {
        set_name <- data_out
    } else (set_name <- data_out)
}

当我运行此函数时,我将获得一个大型数据框,其中与模式匹配的每个文件将显示为名称

/Users/Joh/Desktop/Experiment1 Folder/SCNavigator/Traces/Par994/StepsCrop.ibw`

包括整个文件路径,看起来和处理它有点笨拙。

我尝试使用

行删除路径部分
data_out$name  <- gsub(set.path, "", data_out$Var2)

与上面的命令类似,删除自动命名为V1,V2,V3 ...的数据帧(可以工作)。我无法删除与set.path = "my/path/"匹配的字符串部分。

1 个答案:

答案 0 :(得分:1)

无论您的set.path是什么,都可以通过

消除它

gsub(".*/","",mypath)

mypath<-"/Users/Joh/Desktop/Experiment1 Folder/SCNavigator/Traces/Par994/StepsCrop.ibw" gsub(".*/","",mypath) [1] "StepsCrop.ibw

`