Загрузка и обработка динамических имен файлов с помощью цикла for - PullRequest
1 голос
/ 16 мая 2019

Я обрабатываю некоторые .xlsx, которые называются как time1_drug1, time1_drug2, до tiume6_drug5 (всего 30 файлов).Я хочу загрузить эти xlsx в R и назвать их для набора данных, таких как t1d1, t2d2.Я пытался использовать sprintf, но не могу понять, как сделать его действительным.

for(i in 1:6) {
  for(j in 1:5) {
sprintf("time%i","drug%j,i,j)=read.xlsx("/Users/pathway/dataset/time_sprintf(%i,i)_drug(%j,j).xlsx", 1)}
names(sprintf("t%i","d%j,i,j))=c("result", "testF","TestN")
sprintf("t%i","d%j,i,j)$Discription[which(sprintf("t%i","d%j,i,j)$testF>=1&sprintf("t%i","d%j,i,j)$TestN>=2)]="High+High"
}
}

Я ожидаю получить 30 данных, таких как t1d1 до t6d5.

Ответы [ 2 ]

0 голосов
/ 23 мая 2019

Вы не должны (почти) никогда не использовать assign.При чтении нескольких файлов в R вы должны (почти) всегда помещать их в именованный список.

Грубый план гораздо лучшего подхода таков:

0 голосов
/ 16 мая 2019

Вы можете использовать цикл for как есть, но вы также должны использовать функцию assign:

for(i in 1:6){
for(j in 1:5){
assign(paste0('t', i, '_', 'd', j), read.xlsx(paste0("/Users/pathway/dataset/time_",i,"_drug",j,".xlsx"), 1))
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...