删除嵌套在数据框列表中的列标题中的句点和空格

问题描述 投票:2回答:2

我有一个数据框列表:

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

我想删除列表中每个数据框的列标题中的句点和空格。输出看起来像:

 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(ldf, function(x) x[(colnames(x) <- gsub(".", "", 
 colnames(x), fixed = TRUE))])
r list dataframe
2个回答
2
投票

使用Base R setNames

lapply(mylist, function(x) setNames(x, gsub("\\.", "", names(x))))

或与tidyverse

library(tidyverse)

map(mylist, ~rename_all(.x, str_replace_all, "\\.", ""))

输出:

$df1
  var1 var2
1    a    a
2    b    b
3    c    c

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

1
投票

我重命名每个数据框中的列,然后返回数据框。正如here所解释的那样,在此期间需要双反斜杠作为转义字符。

lapply(mylist, function(x){names(x) <- gsub("\\.", "", names(x));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
© www.soinside.com 2019 - 2024. All rights reserved.