我正在完成一项任务,我写的函数有3个args:包含要评估的表的目录,要由函数评估的列,以及序列1: x其中x是目录中的文件数。
我的困惑是相当基础的,因为我不确定函数需要使用的目录是否需要设置为我的工作目录,或者目录是否需要具有整个文件路径。
理想情况下,我想要调用函数pm("文件夹名称"," colname",4:112 ## random seq)以及函数中发生的任何数学运算
不幸的是,我对语法的了解有点缺乏,目前我正在尝试更改用户输入的序列以匹配文件名,因此我可以使用read.csv脚本只读取与用户定义的序列匹配的表。
pm<-function(directory, sex, id = 1:440){ ##sex is the col arg M/F
i<-id
j<-as.character(i)
j[nchar(j)==1]<-paste("00", j[nchar(j)==1], sep="")
j[nchar(j)==2]<-paste("0", j[nchar(j)==2], sep="")
j[nchar(j)==3]<-paste(j[nchar(j)==3],".csv", sep="")
print(j)
}
这是我目前计划将用户输入从1:400序列转换为字符向量并使用它来读取我需要的特定表。有没有更有效的方法呢?
答案 0 :(得分:0)
不要自己计算字符,而是让formatC为你做。
pm <- function(directory, sex, id = 1:440){
filenames <- paste0(formatC(id, digits = 0, width = 3, format="f", flag = "0"), ".csv")
filepaths <- file.path(directory, filenames)
list_of_data_frames <- lapply(filepaths, read.csv)
# Do things with the data here, such as lapply(list_of_data_frames, your_function)
}