在R中使用for循环遍历数据帧的名称

在R中使用for循环遍历数据帧的名称,r,for-loop,R,For Loop,我有20年来各种公司合并的数据。我在R中使用了一个“for”循环来分离每年的数据,这在全球环境中给了我20个数据帧。每个数据帧按年份标识:Merger2000到Merger2019,持续20年。现在,我想编写另一个for循环,以查找每个数据帧中唯一的公司(即每年唯一的公司)。每个公司都由唯一的公司代码(co_代码)标识。我知道如何在每年单独做这件事。例如,对于2000年,我会做如下事情: uniquemerger2000%不同(co_代码,.keep_all=TRUE) 如何运行for循环以在所

我有20年来各种公司合并的数据。我在R中使用了一个“for”循环来分离每年的数据,这在全球环境中给了我20个数据帧。每个数据帧按年份标识:Merger2000到Merger2019,持续20年。现在,我想编写另一个for循环,以查找每个数据帧中唯一的公司(即每年唯一的公司)。每个公司都由唯一的公司代码(co_代码)标识。我知道如何在每年单独做这件事。例如,对于2000年,我会做如下事情:

uniquemerger2000%不同(co_代码,.keep_all=TRUE)

如何运行for循环以在所有年份(即2000-2019年)启用此操作?代码中需要一些索引,但我不确定如何在循环中操作它


任何帮助都将不胜感激。谢谢

通常,最好将数据保存在一个数据帧或列表中,而不是全局环境中的多个这样的对象

您可以创建一个列表对象(
list\u data
),将所有数据帧放在一起,并使用
lappy
/
map
保持每个数据帧中的行唯一

library(dplyr)
library(purrr)

list_data <- mget(paste0('Merger', 2000:2019))
result <- map(list_data, ~.x %>% distinct(co_code, .keep_all = TRUE))
库(dplyr)
图书馆(purrr)

列出数据为什么不创建一个带有
year
变量的数据框?如果您有20个变量,它们的名称只在末尾附加了一个数字,那么可能有一个数据结构正在等待生成。谢谢Ronak。这非常有用。我能问一个相关的问题吗?在我得到包含所有数据帧列表的结果(保留每个数据帧中唯一的行)后,如果我想为每年的数据帧(换句话说,每年唯一的公司)创建一个计数行的频率表,你知道我该怎么做吗?你可以在
lappy
中使用
table
。类似于
结果的东西
result <- lapply(list_data, function(x) x[!duplicated(x$co_code), ])