Удалить точку и пробелы внутри заголовков столбцов, вложенных в список фреймов данных - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть список фреймов данных:

 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))])

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Я переименовываю столбцы в каждом фрейме данных, а затем возвращаю фрейм данных. Как объяснено здесь , в качестве escape-символов для периода необходимы двойные обратные слеши.

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
0 голосов
/ 02 ноября 2018

с основанием 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...