Примените некоторые функции к столбцу данных в списке - PullRequest
1 голос
/ 07 октября 2019

Я знаю, что мы можем использовать apply или lapply, чтобы сделать то, что цикл for может делать в R. Если у вас есть фрейм данных, вы можете просто использовать apply (dataframe,2,mean) для вычисления среднего значения столбцов, однако что, если у нас есть список фреймов данных и яНеобходимо выполнить следующие корректировки, удалив первый столбец и преобразовав кадр данных в числовой. скажем, список данных - это LIST, где LIST [[1]] - это первый кадр данных.

Как использовать lapply для списка данных, чтобы выполнить вышеуказанную операцию сразу. Как я могу выполнить операцию с внутренним списком данных, используя lapply, так как

lapply(LIST, function (x) some function)

применяет операцию к списку, а не к данным. и следующее не имеет никакого смысла:

lapply(LIST[], function (x) some function) 

1 Ответ

1 голос
/ 07 октября 2019

Мы можем выполнить цикл по list, установить подмножество столбцов набора данных, удалив первый столбец, выполнить цикл по этому подмножеству, преобразовать в numeric, назначить вывод для набора данных и вернуть этот набор данных

lapply(LIST, function(x) {x[-1] <- lapply(x[-1], as.numeric); x[-1]})

или другой параметр

lapply(LIST, function(x) data.frame(lapply(x[-1], as.numeric)))

Кроме того, если его необходимо преобразовать в зависимости от типа, более простым вариантом будет type.convert, который можно применить к data.frame s

lapply(LIST, type.convert)

Или используя tidyverse

library(dplyr)
library(purrr)
map(LIST, ~ .x %>%
               transmute_at(-1, as.numeric))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...