首页 > 解决方案 > 如何在R中的特定目录中插入文本

问题描述

我正在寻找一种将字符(名称)插入目录并创建 .csv 文件的优雅方法。我找到了一种可能的解决方案,但是我正在寻找另一种没有“替换”但在特定字符之间“插入”文本的解决方案。

#lets start
    df <-data.frame()
    name <- c("John Johnson")
    dir <- c("C:/Users/uzytkownik/Desktop/.csv")
#how to insert "name" vector between "Desktop/" and "." to get:
    dir <- c("C:/Users/uzytkownik/Desktop/John Johnson.csv")
    write.csv(df, file=dir)
#???

#I found the answer but it is not very elegant in my opinion
    library(qdapRegex)
    dir2 <- c("C:/Users/uzytkownik/Desktop/ab.csv")
    dir2<-rm_between(dir2,'a','b', replacement = name)
> dir2
[1] "C:/Users/uzytkownik/Desktop/John Johnson.csv"
    write.csv(df, file=dir2)

标签: rtextreplaceinsertqdapregex

解决方案


我喜欢sprintf“填充空白”样式字符串构造的语法:

name <- c("John Johnson")
sprintf("C:/Users/uzytkownik/Desktop/%s.csv", name)
# [1] "C:/Users/uzytkownik/Desktop/John Johnson.csv"

另一种选择,如果您不能将 放在%s目录字符串中,则使用sub. 这是替换,但它替换.csv<name>.csv.

dir <- c("C:/Users/uzytkownik/Desktop/.csv")
sub(".csv", paste0(name, ".csv"), dir, fixed = TRUE)
# [1] "C:/Users/uzytkownik/Desktop/John Johnson.csv"

推荐阅读