首页 > 解决方案 > 有没有办法循环多个数据帧以删除相同的列?

问题描述

我有不同的数据框R,我想在其中删除相同的四列,在整个循环中迭代所有这些列的过程。

当我使用子集并在单个数据帧上进行选择时,代码行工作正常。然而,一旦我尝试某种迭代,我总是会遇到某种错误。下面,我做了一些尝试

假设我有两个数据框AB我想为其删除列sexage和。citizenunit

当我使用子集并在单个数据帧上选择时很好:

A=subset(A, select = -c(sex,age,citizen,unit))

然后我尝试创建两个数据框的列表并使用 for 循环,如下所示:

df.list <- list(A, B)

for(i in 1:2) {

  df.list<- subset(i, select = -c(sex,age,citizen,unit))

}

但我收到错误消息:

subset.default 中的错误:缺少参数“子集”,没有默认值

标签: rloopsdataframedata-manipulation

解决方案


我不确定,因为我现在无权检查它,但它不应该是这样的:

for (i in 1:2) {
    df.list <- subset(df.list[i], select = ...)
}

因为您不想调用第一个参数 = 1 但第一个参数 = 列表中第 i 个元素的子集。


推荐阅读