是否存在R函数可基于已有对象创建原始字符串?
在R中处理文件路径的替代方案
首先明确:不存在你想象中的as_raw函数。原因很简单——当你用双引号写"C:\User\me\folder\data"时,R会立刻尝试解析里面的转义字符(比如\U会被识别为Unicode转义序列),这一步就会报错,根本轮不到后续函数去处理这个字符串。
要避免硬编码原始字符串,有几个实用的替代方法:
用双反斜杠转义:把每个反斜杠写成两个,R就能正确识别为路径分隔符:
filepath <- "C:\\User\\me\\folder\\data"使用
file.path()拼接路径:这个函数会自动根据操作系统适配路径分隔符,不用手动写反斜杠,跨平台更友好:filepath <- file.path("C:", "User", "me", "folder", "data")让用户通过
readline()输入路径:用户输入时直接写单反斜杠即可,readline会读取原始输入内容:filepath <- readline("请输入文件路径:")
如果一定要用类似原始字符串的逻辑,也可以把路径拆成参数后组合,但上面的方法已经足够解决问题,没必要绕弯路。
内容的提问来源于stack exchange,提问作者Alberto Agudo Dominguez
相关产品推荐
相关产品推荐

