我有一個數據框的列表,我試圖添加一個矢量的相應元素作爲所有觀察值的新變量到列表的每個數據幀。添加一個新的列到數據框的列表,但只選擇一個矢量的一行
我的問題是:是否有某種「索引」跟蹤lapply函數現在在哪一步?我無法找到任何東西,但它會解決我的問題,我相信因爲我不需要循環,只能使用timevar <- time[magic.index]
我認爲這個例子使我的意思更清晰。
#list of data frames
df1 <- data.frame("Var1" = c(1:10))
df2 <- data.frame("Var1" = c(1:10),"Var2" = c(1:10))
df3 <- data.frame("Var1" = c(1:10),"Var2" = c(1:10),"Var3" = c(1:10))
dfs <- list(df1,df3,df2)
time <- c(1,2,1)
#this is what I want to do with lapply
lapply(dfs, function(x) within(x, timevar <- 1))
dfs2 <- for (i in seq_along(dfs)){
lapply(dfs, function(x) within(x, timevar <- time))
}
#this is what the result should look like
dfs[[1]] <- within(dfs[[1]], timevar <- 1)
dfs[[2]] <- within(dfs[[2]], timevar <- 2)
dfs[[3]] <- within(dfs[[3]], timevar <- 1)
dfs
注意'lapply()'*是*循環。 – gung