将一些功能应用于列表中数据框的列

时间:2019-10-06 23:20:21

标签: r list dataframe apply lapply

我知道我们可以使用apply或lapply来执行R中for循环可以执行的操作。如果您有一个数据框,则可以使用apply (dataframe,2,mean)计算列的平均值,但是如果我们有数据框列表,该怎么办并且我需要通过删除第一列进行以下调整,并将数据框转换为数字。 可以说数据帧的列表是LIST,其中LIST [[1]]是第一个数据帧。

如何对数据帧列表使用lapply一次执行上述操作。自

起,我如何使用lapply对列表内的数据框进行操作
lapply(LIST, function (x) some function)

应用该操作以不将其列出到数据框中。并且以下操作没有任何意义:

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

1 个答案:

答案 0 :(得分:1)

我们可以遍历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))