R name带有lappy的data.frames列表中的colname和rowname

R name带有lappy的data.frames列表中的colname和rowname,r,lapply,R,Lapply,我很沮丧,因为我不知道如何在data.frames列表中实现列和行的命名。我的意思是我想避免使用循环。所以我想我可以用lappy。 好的,首先我有以下列表: >a $nem.greedyMAP.FALSE.POS X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 1 NA NA NA NA NA NA NA NA NA NA 2 NA NA NA NA NA NA NA NA NA NA 3 NA NA NA NA NA NA NA NA NA NA

我很沮丧,因为我不知道如何在data.frames列表中实现列和行的命名。我的意思是我想避免使用循环。所以我想我可以用lappy。 好的,首先我有以下列表:

>a
    $nem.greedyMAP.FALSE.POS
   X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
1  NA NA NA NA NA NA NA NA NA  NA
2  NA NA NA NA NA NA NA NA NA  NA
3  NA NA NA NA NA NA NA NA NA  NA
4  NA NA NA NA NA NA NA NA NA  NA
5  NA NA NA NA NA NA NA NA NA  NA
6  NA NA NA NA NA NA NA NA NA  NA
7  NA NA NA NA NA NA NA NA NA  NA
8  NA NA NA NA NA NA NA NA NA  NA
9  NA NA NA NA NA NA NA NA NA  NA
10 NA NA NA NA NA NA NA NA NA  NA

$nem.greedyMAP.FALSE.NEG
   X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
1  NA NA NA NA NA NA NA NA NA  NA
2  NA NA NA NA NA NA NA NA NA  NA
3  NA NA NA NA NA NA NA NA NA  NA
4  NA NA NA NA NA NA NA NA NA  NA
5  NA NA NA NA NA NA NA NA NA  NA
6  NA NA NA NA NA NA NA NA NA  NA
7  NA NA NA NA NA NA NA NA NA  NA
8  NA NA NA NA NA NA NA NA NA  NA
9  NA NA NA NA NA NA NA NA NA  NA
10 NA NA NA NA NA NA NA NA NA  NA
当然这个名单要大得多,否则我就不值得麻烦了。 但是,我希望将所有data.frames的列和行重命名为相同。 所以我想我可以用:

lapply(a, function(x) {colnames(x) <- paste("col",1:10,sep="")})

lappy(a,函数(x){colnames(x)您需要记住,
lappy
中的对象
x
不是原始对象,而是副本。更改副本的
colnames
不会影响原始对象。您需要返回
x
以获取包含新名称的对象的新副本

new_obj = lapply(a, function(x) {
   colnames(x) <- paste("col",1:10,sep="")
   return(x)
  })
new_obj=lappy(a,函数(x){

colnames(x)在这种情况下,我更喜欢
setNames

set.seed(1)
datalist <- list(dat1 = data.frame(A = 1:10, B = rnorm(10)),
                 dat2 = data.frame(C = 100:109, D = rnorm(10))
                 )
lapply(datalist, names)
##  $dat1
## [1] "A" "B"

## $dat2
## [1] "C" "D"

datalist <- lapply(datalist, setNames, paste0("col", 1:2))
lapply(datalist, names)
## $dat1
## [1] "col1" "col2"

## $dat2
## [1] "col1" "col2"

@agstudy在本例中,OP只想修改
colnames
,但我编辑了我的答案,添加了如何使用简单的一行程序修改行名和colnames
lapply(datalist, "colnames<-", paste0("col", 1:2))
lapply(datalist, "rownames<-", letters[1:10])