read.csv在R中的变量文件名 [英] variable file names for read.csv in R

查看:466
本文介绍了read.csv在R中的变量文件名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这可能是一个非常常见的问题,因此我特别寻找一个优雅或至少不那么完美的解决方案。

This may be a very common problem, so I am specifically looking for an elegant or at least less-kludgy-than-mine solution.

我有一系列文件从001.csv到200.csv。我需要能够选择我想在一个函数中的哪些,以便列表通过,并只选择适当的列表。

I have series of files from 001.csv to 200.csv. I need to be able to select which ones I want in a function such that a list is passed and only the appropriate list is selected.

function(filenumbers = 1:200 {
}

if语句集,以在必要时提供'00'和'0'前缀:

I have created a very ugly set of if statements to provide the '00' and '0' prefixes where necessary:

for (i in filenumbers) {
if (i < 10) {filename<-paste("00", i, ".csv", sep ="")
} else if (i < 100) {filename<-paste("0", i, ".csv", sep="")
} else {filename<-paste(i, ".csv", sep="")}
print(filename)
}

这会输出正确的名称列表,一个更好的方法来处理这个问题
我对R有点新,所以任何过度解释都会感激。

This does output the correct list of names, but it seems like there must be a better way to handle this problem. I am somewhat new to R, so any over-explanation would be appreciated.

推荐答案

这将是 sprintf 函数的一个很好的用法。它有许多格式化选项,但在这种情况下,我会使用

This would be a good use of the sprintf function. It has many formatting options, but for this case I would use

sprintf("%03d.csv", 1:200)

#   [1] "001.csv" "002.csv" "003.csv" "004.csv" "005.csv"
#   [6] "006.csv" "007.csv" "008.csv" "009.csv" "010.csv"
#     ...
#  [96] "096.csv" "097.csv" "098.csv" "099.csv" "100.csv"
# [101] "101.csv" "102.csv" "103.csv" "104.csv" "105.csv"
#     ...
# [191] "191.csv" "192.csv" "193.csv" "194.csv" "195.csv"
# [196] "196.csv" "197.csv" "198.csv" "199.csv" "200.csv"

这篇关于read.csv在R中的变量文件名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆