lapply 分配给数据框期间发生了什么

What is happening during assignment to a dataframe by lapply

给定一个数据帧 df 和一个应用于 df 的函数 f:

df[] <- lapply(df, f)

R 用来自 lapply 的列表中的向量集合替换 df 中的列的神奇之处是什么?我看到 lapply 的结果是一个与数据帧 df 同名的向量列表。我假设正在完成一些魔术映射以将向量映射到 df[],这是 df 中列的集合(methinks)。只是工作?努力更好地理解,以便我记住下次使用什么。

A data.frame 只是具有相同长度的向量列表。您可以使用 is.list(a_data_frame) 查看它。它将 return TRUE.

[] 可以有不同的含义或作用,具体取决于它所应用的对象。它甚至可以重新定义,因为它实际上是一个函数。

[] 允许从 data.frame.

中提取或插入矢量列

df[1] 获取第一列 df[1] <- 22 替换第一列(重复以便与其他列具有相同的长度)

df[]return整个data.frame df[] <- list(c1,c2,c3) 设置 data.frame 的内容替换它的当前内容

加上大量其他方式来访问或设置 data.frame 中的数据(按列名、行的子集、列的子集...)