2015-03-30 137 views
0

多個數據幀我想用的名字創建100個空數據幀R-創建具有名稱

  • DF1,DF2,......,DF100。

每個數據幀將具有2列,其中

  • 第i個數據幀的DFI具有colnames「一」和「喜」列。例如,df5的列名將是y5和x5。
  • 第一列將是字符,第二列將是數字。

如何使用R創建此類數據框架我將非常樂意提供任何幫助。非常感謝。

+0

更改列名,這些字符或數字列? – akrun 2015-03-30 18:36:54

+0

akrun,我編輯了這個問題。 – oercim 2015-03-30 18:40:08

回答

4

我們可以使用replicate創建一個列表中的空「data.frames」與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

非常感謝。這工作得很好。 – oercim 2015-03-30 18:57:49

+1

+很好完成@akrun,很高興看到使用地圖。 如果您在全球環境中需要這些數據幀,請執行此操作list2env(lst1,envir = .GlobaEnv) – infominer 2015-03-30 19:01:26

+0

@infominer感謝您提醒'list2env'。我最初想到了這一點。 – akrun 2015-03-30 19:02:51

相關問題