我有两个列表,一个包含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不知道该怎么做。
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)