Извлечение точки из нескольких фреймов данных в списке - PullRequest
1 голос
/ 06 июня 2019

Я пытаюсь выделить одну точку в том же месте (тот же столбец и строка) из 1000 кадров данных. Каждый фрейм данных имеет одинаковые 8 столбцов с различным количеством строк (по крайней мере, один) - и мне пока нужны только точки из первой строки. Эти фреймы данных находятся в списке, созданном с помощью функции lapply. Вот как я это сделал:

list <- list.files(pattern=".aei")
files <- lapply(list, read.table, ...)

Теперь мне нужно изолировать точки от каждого фрейма данных в строке 1 и столбце 2. Я смог сделать это для одного фрейма данных со следующим кодом:

a <- data.frame(files[1])[1,2]

Однако я не могу заставить это работать для всех 1000 файлов. Я пробовал несколько кусков кода, таких как:

all <- data.frame(files[1:999])[1,2]
all<- lapply(files data.frame)[1,2]
all<- lapply(files, data.frame[1,2])

и даже два разных цикла:

for(i in files [[1:999]]) {
    list(files[1:999])[1,2]
}
for(i in files [[1:999]]) {
    data.frame(files[1:999])[1,2]
}

Находятся ли какие-либо из этих методов на правильном пути или они полностью неверны? Я застрял на этом некоторое время и, похоже, зашел в тупик в отношении любых других идей. Пожалуйста, дайте мне знать о любых ваших предложениях!

1 Ответ

2 голосов
/ 06 июня 2019

Мы можем использовать анонимную функцию (лямбда-функцию) для извлечения элемента

lapply(files, function(x) x[1,2])

read.table уже дает data.frame, поэтому нет необходимости переносить с data.frame

...