vec.1 <- c(1, 2)
vec.2 <- c(2, 3)
df.1 <- data.frame(vec.1, vec.2)
df.2 <- data.frame(vec.2, vec.1)
my_list <- list(df.1, df.2)
我希望创建从该列表中他们来自列表数列表示沿每个数据帧 序列。
打印数据列表:
[[1]]
vec.1 vec.2
1 1 2
2 2 3
[[2]]
vec.2 vec.1
1 2 1
2 3 2
代码:
funk <- function(x){
index <- seq(x)
linenum <-
cbind(x,index,linenum)
}
new.dat <- lapply(my_list, funk)
预期输出:
[[1]]
vec.1 vec.2 index listnum
1 1 2 1 1
2 2 3 2 1
[[2]]
vec.2 vec.1 index listnum
1 2 1 1 2
2 3 2 2 2
目前我面临的困难,创造这个listnum
列。
我相信虽然所有其他解决方案确实解决了这个问题。但是,我发现tidyverse解决方案非常有用。 – Shoaibkhanz
但是,有一个问题没有解决,那就是如果包含数据框的列表有一些'NULL'列表索引。我实施的解决方案涉及确定哪些索引具有NULL,然后用伪数据帧替换它们。 – Shoaibkhanz
@Shoaibkhanz目前尚不清楚具体情况。但是,如果有空元素,你可以用'if/else'条件,即'〜if(is.null(.x))NA else mutate(.x,index = row_number(),listnum = ..y) )' – akrun