【问题标题】:R cant loop concatenate directory and file nameR不能循环连接目录和文件名
【发布时间】:2020-08-20 19:50:15
【问题描述】:

我试图从下面的这个文件夹中循环粘贴一个目录文件夹路径和一些 csv 文件名,但出现错误。请帮忙!

#

# Create String of Directory fpath

strdir <- getwd()

vec_files <- dir(path = getwd(), pattern = "*.csv") 

# Loop

for (i in 1:length(vec_files)) {

  print0(strdir,"/",vec_files[[i]], sep = "")

}

返回以下错误:

print.default(strdir, "/", vec_files[[i]], sep = "") 中的错误:
无效的打印数字 -2147483648 另外:警告消息:在 print.default(strdir, "/", vec_files[[i]], sep = "") : 不适用 强制引入

【问题讨论】:

  • 你有一个错字。使用 paste0 而不是 print0

标签: r loops vector concatenation


【解决方案1】:

正如@teofil 所述,您可能希望使用paste0 而不是print0,因为没有名为print0 的函数。此外,即使在使用paste0 之后,循环也不会打印任何内容,因为在for 循环中您需要显式打印对象,因此将另一个printcat 包裹在paste0 周围以使其工作。

但是,您确实不需要这样做。 dir()list.files() 具有 full.names 参数,如果设置为 TRUE,则提供文件的完整路径。

vec_files <- dir(path = getwd(), pattern = "\\.csv$", full.names = TRUE)

还要注意,如果您从工作目录本身读取,则不一定需要文件的完整路径,尽管始终使用完整路径是一个好习惯。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-20
    • 2019-09-25
    • 2023-03-21
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 2013-05-27
    相关资源
    最近更新 更多