file.path函数中的空值(NA)显示额外的斜杠字符

时间:2018-08-14 14:14:05

标签: r

如何在R中的file.path函数中表示一个空值?

例如,在下面的fileName变量中,我希望输出一个斜杠字符"C:/Temp/abc.pdf"而不是两个"C:/Temp//abc.pdf"

condition <- TRUE
fileName <- file.path("C:/Temp", ifelse(condition, "", "Approved"), "abc.pdf")
fileName
[1] "C:/Temp//abc.pdf"

""NAcharacter(0)替换NULL无效。

生成的文件路径可以在任何文件操作功能(例如file.existsfile.copy等)中使用而没有任何问题。这更像是一个视觉问题(例如,我想手动复制输出路径,而不是将双斜杠替换为Windows资源管理器)。

p.s。我不想使用字符串替换。

1 个答案:

答案 0 :(得分:1)

您可以使用if (condition) value来创建动态长度的字符向量:

f = function(cond) do.call(file.path, 
  as.list(c("C:/Temp", if (cond) "Approved", "abc.pdf"))
)

f(TRUE)
# [1] "C:/Temp/Approved/abc.pdf"
f(FALSE)
# [1] "C:/Temp/abc.pdf"

之所以有效,是因为if (FALSE) value变成了NULL,并且在原子向量中删除了空值:

c(1, NULL, 2)
# [1] 1 2