2015-03-30 4 views
0

Я хочу создать 100 пустых кадров данных с именамиR-создание нескольких кадров данных с именами

  • DF1, df2, ..., df100.

Каждый кадр данных будет иметь 2 колонки, где

  • i-го кадра данных DFI имеют столбцы с COLNAMES «уг» и «хх». Например, имена столбцов df5 будут y5 и x5.
  • Первый столбец будет хрустящим, а второй - цифровым.

Как создать такие фреймы данных, используя R. Я буду очень рад за любую помощь. Большое спасибо.

+0

Являются ли эти символьные или числовые столбцы? – akrun

+0

akrun, я редактировал вопрос. – oercim

ответ

4

Мы можем создать пустые «data.frames» в списке с помощью replicate и изменить имена столбцов с Map

n <- 100 
lst <- replicate(n,data.frame(y=character(), x=numeric(), 
        stringsAsFactors=FALSE), simplify=FALSE) 

names(lst) <- paste0('df', 1:n) 
nmy <- paste0('y', 1:n) 
nmx <- paste0('x', 1:n) 
lst1 <- Map(function(x,y,z) {names(x) <- c(y,z); x}, lst, nmy, nmx) 

Или

lst1 <- Map(setNames, lst, as.data.frame(rbind(nmy,nmx))) 


str(lst1, list.len=3) 
#List of 100 
# $ df1 :'data.frame': 0 obs. of 2 variables: 
# ..$ y1: chr(0) 
# ..$ x1: num(0) 
# $ df2 :'data.frame': 0 obs. of 2 variables: 
# ..$ y2: chr(0) 
# ..$ x2: num(0) 
# $ df3 :'data.frame': 0 obs. of 2 variables: 
# ..$ y3: chr(0) 
# ..$ x3: num(0) 
# [list output truncated] 
+0

Большое спасибо akrun. Это работает очень хорошо. – oercim

+1

+ красиво сделано @akrun, приятно видеть использование Карты. Если вам нужны эти кадры данных в глобальной среде, сделайте это list2env (lst1, envir = .GlobaEnv) – infominer

+0

@infominer Спасибо за напоминание 'list2env'. Я изначально думал об этом. – akrun

Смежные вопросы