【发布时间】:2021-12-12 19:55:59
【问题描述】:
我有一个名为“列表”的dataframe,如下所示:
| Name | Institution | Department |
|---|---|---|
| Adam | A | xxx |
| Eve | B | yyy |
| John | A | zzz |
| Jane | C | xxx |
我还有另一个 dataframe 的其他数据,我想从使用名称中提取信息 - 这部分没问题。
我的问题是在尝试使用多个变量输入获取 file_path 时出现的。
我如何有一个循环来读取每一行中的变量以正确获取 file_path:
parent_dir<-"Documents/Files"
for (i in List$Name) {
name <- i
for (j in List$Institution) {
inst <- j
for (k in List$Department) {
dept<-k
file_path<-paste0(parent_dir,"/",inst,"/",dept,"/",name,".xlsx")
answer <- data[is.element(Data$Name, i), ]
file.copy(template_path,file_path)
wb<-loadWorkbook(file_path,create = FALSE)
writeWorksheet(wb,answer,sheet="Staff",header=FALSE)
saveWorkbook(wb,file_path)
}}}
我想做的是为dataframe 中的每一行提供以下file_path:
"/Documents/Files/A/xxx/Adam.xlsx"
"/Documents/Files/B/yyy/Eve.xlsx"
"/Documents/Files/A/zzz/John.xlsx"
"/Documents/Files/C/xxx/Jane.xlsx"
我现在得到的是:
“A/xxx”和“A/zzz”中的“Adam.xlxs”
或其他错误消息,例如:
目录“A/yyy”不存在。
如果只有 1 个循环/变量,这个块就可以正常工作:
for (i in List$Name) {
file_path<-paste0(parent_dir,"/",i,".xlsx")
answer <- data[is.element(Data$Name, i), ]
file.copy(template_path,file_path)
wb<-loadWorkbook(file_path,create = FALSE)
writeWorksheet(wb,answer,sheet="Staff",header=FALSE)
saveWorkbook(wb,file_path)
}
也欢迎任何其他建议/解决方案!
提前谢谢你!
【问题讨论】:
标签: r loops data-manipulation