这可能已经得到解答,但我无法找到解决我具体问题的方法:
我正在寻找某种文件类型(例如.jpeg)并使用message
函数向用户打印message()
。但随着message
我要打印一个序列。
输出应为:
1. Found filename at System time.
2. Found filename2 at System time.
不幸的是,我的输出是:
1 Found filename at System time
2 Found filename at System time
1 Found filename2 at System time
2 Found filename2 at System time
我的代码:
library(tools)
setwd("/Users/RLearner/Desktop/TEMP")
a<-list.files(getwd(), recursive=TRUE)
for (f in a)
for (i in 1:length(a))
if (file_ext(f)=="jpeg")
{
message(paste(i, "Found", f, "-", Sys.time(), sep = " "))
}
我做错了什么?
答案 0 :(得分:4)
以下不够吗?
setwd("/Users/RLearner/Desktop/TEMP")
a <- list.files(getwd(), pattern="*jpeg$", recursive=TRUE)
out <- paste(seq_along(a), "Found", "-", a, Sys.time(), sep = " ")
修改强>
我只是通过message
添加out
来找不到解决方案。仍然需要for
循环。如果有人能找到包装,请随时编辑。
for (ii in out){
message(ii)
}
答案 1 :(得分:1)
我明白了!如果我声明一个变量i<-0
然后在if
语句中递增它,它就可以了:我的代码:
library(tools)
setwd("/Users/RLearner/Desktop/TEMP")
a<-list.files(getwd(), recursive=TRUE)
i<-0
for (f in a)
if (file_ext(f)=="jpeg")
{
message(paste(i+1, "Found", f, "-", Sys.time(), sep = " "))
i<-i+1
}