我知道我们可以使用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)
答案 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))