我尝试通过将列表中每个 Dataframe 的名称添加到行名称中来更改它们的row.names
。List
为:
l <- list(a=data.frame(col = c(1,2,3),row.names = c("k","l","m")), b=data.frame(col =
c(4,5,6), row.names = c("o","p","r")))
我尝试了这个方法,但无法添加索引名称a
和b
:
lapply(l,function(x) {x %>% `row.names<-` (paste(names(l)[which(l %in%
x)],rownames(x),sep = "."))})
l$a
为:
| row.names|山坳|
| - ------|- ------|
| k|1个|
| 升|第二章|
| 米|三个|
但应该是这样的:
| row.names|山坳|
| - ------|- ------|
| 又名|1个|
| 动脉|第二章|
| 上午|三个|
我该怎么办?先谢谢你。
3条答案
按热度按时间wpx232ag1#
我们可以不迭代列表,而是迭代列表的名称,这样在将名称粘贴在一起时可以有更好的控制。
这是根据您的尝试修改的:
xe55xuns2#
使用
mapply
的方法数据
6jjcrrmo3#
1)rbind使用
rbind
创建具有所需行名称的单个数据框,然后将其拆分回原始数据框。2)数据.帧使用
data.frame
及其row.names=
参数以避免row.names<-
3)for使用for循环创建
ll