【发布时间】:2019-10-17 14:50:53
【问题描述】:
有一个数据框列表,我想循环移动第 1 列到行名。
请在下面找到示例数据,以及我尝试的一个 lapply:
d1 <- data.frame(y1 = c('row1', 'row2','row3', 'row4'), y2 = c(4, 5, 6, 7), y3 = c(40, 50, 60, 70))
d2 <- data.frame(y1 = c('row1', 'row2','row3', 'row4'), y2 = c(6, 5, 4, 4), y3 = c(40, 50, 60, 70))
d3 <- data.frame(y1 = c('row1', 'row2','row3', 'row4'), y2 = c(6, 5, 5, 4), y3 = c(40, 50, 60, 70))
d4 <- data.frame(y1 = c('row1', 'row2','row3', 'row4'), y2 = c(6, 5, 2, 4), y3 = c(40, 50, 60, 70))
listdfs <- list(d1, d2, d3, d4)
[[1]]
y1 y2 y3
1 row1 4 40
2 row2 5 50
3 row3 6 60
4 row4 7 70
[[2]]
y1 y2 y3
1 row1 6 40
2 row2 5 50
3 row3 4 60
4 row4 4 70
[[3]]
y1 y2 y3
1 row1 6 40
2 row2 5 50
3 row3 5 60
4 row4 4 70
[[4]]
y1 y2 y3
1 row1 6 40
2 row2 5 50
3 row3 2 60
4 row4 4 70
lapply(listdfs, function(df) transform(df, rownames(df) = y1))
所以行名变成'row1'等等。
谢谢。如有重复请见谅。
【问题讨论】: