我有一个数据帧列表,每个数据帧均根据类型命名。所有数据框具有相同的列名。我想将每个数据框的名称应用于该数据框的一个特定列。
df1 <- data.frame(var_a = 1, var_b = 2, var_X = 3)
df2 <- data.frame(var_a = 4, var_b = 5, var_X = 6)
types <- c("typeA", "typeB")
lst <- list(df1, df2)
names(lst) <- types
这给了我
> lst
$typeA
var_a var_b var_X
1 1 2 3
$typeB
var_a var_b var_X
1 4 5 6
我希望它将每个数据帧中的var_x
更改为相应的类型。
我尝试遍历types
中的元素,以使用它来子集到相应的列表项:
for (i in types) {
colomnnames <- c("var_a", "var_b", types[i])
colnames(lst[[i]]) <- colomnnames
}
但是,这会将最后一列的名称更改为NA
。我想念什么?
答案 0 :(得分:1)
您遇到的问题在以下行的for循环中:
colomnnames <- c("var_a", "var_b", types[i])
将其更改为:
colomnnames <- c("var_a", "var_b", i)