将数据帧列表中的元素和标头的所有大小写更改为小写

时间:2018-11-02 20:39:16

标签: r list dataframe

我有一个数据帧列表:

mylist<-list(df1=data.frame(Var1=c("A","b","c"), var2= 
c("a","b","c")), df2= data.frame(var1 = c("a","B","c"), 
VAr2=c("A","B","C")))

我想将列标题中的所有情况以及字符串的每个元素都更改为小写。 (这样,当我合并数据帧时,所有变量都正确合并,并且'cat'与“ Cat”不会被读取为不同的条目。)

输出如下:

mylist<-list(df1=data.frame(var1=c("a","b","c"), var2= 
c("a","b","c")), df2= data.frame(var1 = c("a","b","c"), 
var2=c("a","b","c")))

我尝试了以下方法:

cleandf <- lapply(mylist, function(x) tolower(mylist[x])

1 个答案:

答案 0 :(得分:1)

以下是Masoud回答的类似方法

lapply(mylist, function(x) {
  names(x) <- tolower(names(x))
  x[] <- lapply(x, tolower)
  x
})
#$df1
#  var1 var2
#1    a    a
#2    b    b
#3    c    c

#$df2
#  var1 var2
#1    a    a
#2    b    b
#3    c    c

第一个lapply遍历您的列表。对于每个由x表示的数据帧,我们首先更改其列名。然后,第二个lapplytolower应用于数据帧的每一列。