在R中进行第二次迭代

Bee*_*eba 0 r lapply

我有两个列表,一个包含2个data.frames,另一个包含2个向量。

我需要将data.frames中的列名设置为另一个列表中的向量,似乎无法用lapply做到这一点。

可重现的示例:

set.seed(1)
df1 <- data.frame(
  X = sample(1:10),
  Y = sample(c("yes", "no"), 10, replace = TRUE)
)

df2 <- data.frame(
    Z = sample(LETTERS,10),
    X = sample(1:10),
    Y = sample(c("yes", "no"), 10, replace = TRUE)
)
dataframes <- list(df1, df2)
columns <- list(c("numbers", "boolean"),c("letters", "numbers", "boolean"))
Run Code Online (Sandbox Code Playgroud)

数据框的列数不同,原始数据中的列名也有很大不同。我一直想做的是使用lapply将列列表映射为数据帧的名称,但是我需要遍历,但我columns不知道该怎么做。

Ice*_*can 6

Map(setNames, dataframes, columns)

# [[1]]
#    numbers boolean
# 1        3     yes
# 2        4     yes
# 3        5      no
# 4        7     yes
# 5        2      no
# 6        8     yes
# 7        9      no
# 8        6      no
# 9       10     yes
# 10       1      no
# 
# [[2]]
#    letters numbers boolean
# 1        Y       5      no
# 2        F       6      no
# 3        P       4      no
# 4        C       2      no
# 5        Z      10      no
# 6        I       8      no
# 7        A       9     yes
# 8        H       1     yes
# 9        X       7      no
# 10       V       3      no
Run Code Online (Sandbox Code Playgroud)