我正在寻找一种方法来遍历R中的一系列数据帧,以便对其进行重组,以准备通过多个线性回归模型推动它们。这是基本结构。
假设您有3个数据帧:
StateList <- c(AL, AR, AZ)
每个状态代表一个不同的数据帧(具有不同记录计数的同一列)。我想将所有3个数据帧从其RAW形式的列重组为ETL版本,在该版本中,我仅以不同于RAW格式的顺序选择某些列。我可以通过运行以下命令轻松完成此操作:
AL <- AL[var5,var3,var2]
AR <- AR[var5,var3,var2]
AZ <- AZ[var5,var3,var2]
是否有任何简便的方法可以使用上面的StateList中的列表遍历所有数据帧(具有不同的名称),并将所有2个数据帧更新为ETL格式?
我尝试执行以下操作,但似乎不起作用:
VariableList <- c(var5,var3,var2)
for (df in StateList) {
df[VariableList]}
答案 0 :(得分:1)
像这样吗?
for(let i = 1; i <= 100; i++){
if (i % 5 === 0 && i % 3 === 0) {
console.log("fizzbuzz");
} else if(i % 3 ===0) {
console.log("fizz");
} else if ( i % 5 === 0 ) {
console.log("buzz");
}
console.log(i);
}
然后,您可以使用library(dplyr)
data(mtcars)
df1 <- mtcars %>% filter(cyl == 4)
df2 <- mtcars %>% filter(cyl == 6)
df3 <- mtcars %>% filter(cyl == 8)
df_names <- c("df1", "df2", "df3")
df_list <- lapply(df_names, get)
names(df_list) <- df_names
或lapply
函数将所需的任何功能应用于每个列表元素(即数据框)。
答案 1 :(得分:0)
将数据框添加到列表中,您可以使用lapply
对其进行迭代,以特定顺序排列数据,并执行您想对它执行的任何任务。
StateList <- list(AL, AR, AZ)
VariableList <- c("var5","var3","var2")
result <- lapply(StateList, function(x) {
new_data <- new_data <- data[, VariableList]
#Add code to perform on each dataframe
#....
})