Я работаю в R с 10 списками (files1
, files2
, files3
, ... files10
). Каждый список содержит несколько фреймов данных.R - использование названий списков в петле
Теперь я хочу извлечь некоторые значения из каждого кадра данных в каждом списке.
Я собирался использовать для цикла
nt = c("A", "C", "G", "T")
for (i in files1) {
for (j in nt) {
name = paste(j, i, sep = "-") # here I want as output name = "files1-A". However this doesn't work. How can I get the name of the list "files1"?
colname = paste("percentage", j, sep = "") # here I was as output colname = percentageA. This works
assign(name, unlist(lapply(i, function(x) x[here I want to use the column with the name "percentageA", so 'colname'][x$position==1000])))
}
}
Итак, у меня есть проблемы с использованием имен списков и присвоения их переменным.
Я знаю только цикл через первый список, но можно ли сразу пропустить все мои списки?
Другими словами: как я могу поместить код ниже в цикл for?
A_files1 = unlist(lapply(files1, function(x) x$percentageA[x$position==1000]))
C_files1 = unlist(lapply(files1, function(x) x$percentageC[x$position==1000]))
G_files1 = unlist(lapply(files1, function(x) x$percentageG[x$position==1000]))
T_files1 = unlist(lapply(files1, function(x) x$percentageT[x$position==1000]))
A_files2 = unlist(lapply(files2, function(x) x$percentageA[x$position==1000]))
C_files2 = unlist(lapply(files2, function(x) x$percentageC[x$position==1000]))
G_files2 = unlist(lapply(files2, function(x) x$percentageG[x$position==1000]))
T_files2 = unlist(lapply(files2, function(x) x$percentageT[x$position==1000]))
....
A_files10 = unlist(lapply(files10, function(x) x$percentageA[x$position==1000]))
C_files10 = unlist(lapply(files10, function(x) x$percentageC[x$position==1000]))
G_files10 = unlist(lapply(files10, function(x) x$percentageG[x$position==1000]))
T_files10 = unlist(lapply(files10, function(x) x$percentageT[x$position==1000]))
does 'names (fileS1)' return 'NULL'? –
@ joel.wilson: yes it – user1987607
Было бы здорово разместить образцы данных, например, 2-3 файла, чтобы иметь рабочий пример. См. [Как сделать воспроизводимый пример] (http: // stackoverflow.ком/вопросы/5963269/как к Make-A-пра-р-воспроизводимая-пример/5965451 # 5965451). В общем, для чтения нескольких файлов я создаю функцию (variable1, variable2), которая возвращает кадр данных из одного файла. Затем я использую пакет 'dplyr' с' group_by (variable1, variable2) '' do (myfunction (. $ Variable1,. $ Variable2)) 'для чтения нескольких файлов. это здорово, чтобы получить все данные в одном кадре данных. –