如何在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"
用""
,NA
或character(0)
替换NULL
无效。
生成的文件路径可以在任何文件操作功能(例如file.exists
,file.copy
等)中使用而没有任何问题。这更像是一个视觉问题(例如,我想手动复制输出路径,而不是将双斜杠替换为Windows资源管理器)。
p.s。我不想使用字符串替换。
答案 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