具有lapply的data.frames列表中的R名称同名和行名 [英] R name colnames and rownames in list of data.frames with lapply

查看:86
本文介绍了具有lapply的data.frames列表中的R名称同名和行名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm pretty frustrated because I dont know how I achieve the naming of the columns and rows in a list of data.frames. I mean I want to avoid using a loop. So I figured I could use just lapply. Ok at first I have the following list:

>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的列和行相同. 所以我虽然可以使用:

Of course this list is much bigger, otherwise I wouldnt be worth the trouble. However I want to rename the columns and rows for all data.frames the same. So I though I could use:

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

但是什么也没发生.我怎么能做到这一点.还是用错误的方式?

But nothing happens. How could I achieve this. Or is lapply the wrong way?

谢谢

推荐答案

您需要记住,lapply中的对象x不是原始对象,而是副本.更改副本的colnames不会影响原始对象.您需要返回x才能获得包含新名称的对象的新副本.

You need to remember that the object x inside the lapply is not the original object, but a copy. Changing the colnames of the copy does not impact the original object. You need to return x in order to get a new copy of the object that includes the new names.

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

这篇关于具有lapply的data.frames列表中的R名称同名和行名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆