R 从数据帧中的变量名中删除路径
我组合了一个类似这样的函数,第一个注释行就是一个例子。这里最重要的是R 从数据帧中的变量名中删除路径,r,R,我组合了一个类似这样的函数,第一个注释行就是一个例子。这里最重要的是set.path变量,我最初用于为函数设置路径 # igor.import(set.path = "~/Desktop/Experiment1 Folder/SCNavigator/Traces", # set.pattern = "StepsCrop.ibw", # remove.na = TRUE) igor.multif
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)
}
这包括了整个文件路径,而且查看和处理起来有点笨拙
我试着删除路径部分,上面写着
data_out$name <- gsub(set.path, "", data_out$Var2)
data\u out$name无论您的set.path是什么,您都可以通过
gsub(“.*/”,“”,mypath)
mypathFirst,请澄清您的问题:您到底想要什么,即“这是输入——这是期望的输出”——从您的帖子中不太清楚您想要实现什么。第二,您是否尝试过使用basename(path)
和dirname(path)
对此表示抱歉。结果表明,如果您输入例如~/Desktop/
,R会将其作为/Users/Username/Desktop/
写入您的文件中,导致正在查找最初输入的~/
的gsub命令不匹配。那么gsub(paste0(“*”,sub(“~”,“”,set.path)),“”,data\u out$Var2)
?我最终使用了data\u out$name
data_out$name <- gsub(set.path, "", data_out$Var2)