如何将id列添加到data.frames列表中
我正在将data.frames的列表(如何将id列添加到data.frames列表中,r,list,dataframe,loops,lapply,R,List,Dataframe,Loops,Lapply,我正在将data.frames的列表(k)绑定到单个data.frames(current\u output)中 但是我想知道如何在我的结果data.frame中添加一个id列,这样我就可以在基本R中获得我的desred\u输出 k = list(A = data.frame(d = 1, n = 2), B = data.frame(d = 1:2, n = 2:3)) current_output = do.call(rbind, k) # d n #A 1 2 #B.1 1 2
k
)绑定到单个data.frames(current\u output
)中
但是我想知道如何在我的结果data.frame中添加一个id
列,这样我就可以在基本R中获得我的desred\u输出
k = list(A = data.frame(d = 1, n = 2), B = data.frame(d = 1:2, n = 2:3))
current_output = do.call(rbind, k)
# d n
#A 1 2
#B.1 1 2
#B.2 2 3
desired_ouput1 = data.frame(id = c(1,2,2), d = c(1,1:2), n = c(2,2:3))
# id d n
#1 1 1 2
#2 2 1 2
#3 2 2 3
desired_ouput2 = data.frame(id = c(A,B,B), d = c(1,1:2), n = c(2,2:3))
# id d n
#1 A 1 2
#2 B 1 2
#3 B 2 3
如果您希望使用base R解决方案,下面的代码可能会对您有所帮助
do.call(
rbind,
c(Map(cbind, id = names(k), k),
make.row.names = FALSE
)
)
给
id d n
1 A 1 2
2 B 1 2
3 B 2 3
id d n
A A 1 2
B.1 B 1 2
B.2 B 2 3
或者你可以
cbind(
id = rep(
names(k),
sapply(k, nrow)
),
do.call(rbind, k)
)
给
id d n
1 A 1 2
2 B 1 2
3 B 2 3
id d n
A A 1 2
B.1 B 1 2
B.2 B 2 3
如果您希望使用base R解决方案,下面的代码可能会对您有所帮助
do.call(
rbind,
c(Map(cbind, id = names(k), k),
make.row.names = FALSE
)
)
给
id d n
1 A 1 2
2 B 1 2
3 B 2 3
id d n
A A 1 2
B.1 B 1 2
B.2 B 2 3
或者你可以
cbind(
id = rep(
names(k),
sapply(k, nrow)
),
do.call(rbind, k)
)
给
id d n
1 A 1 2
2 B 1 2
3 B 2 3
id d n
A A 1 2
B.1 B 1 2
B.2 B 2 3
@亨里克,这能提供一个基本的R解决方案吗?非常感谢。有关几个base
备选方案,请参阅。@Henrik,这是否可能提供一个base R解决方案?非常感谢。有关几种base
备选方案,请参阅。