【问题标题】:How do I create a new data.frame with the same column names and types as an existing data.frame?如何创建与现有 data.frame 具有相同列名和类型的新 data.frame?
【发布时间】:2015-03-11 09:04:20
【问题描述】:

我有一个想要克隆的现有 data.frame,但其中没有值。 IE。我希望新框架具有与现有框架相同的列名和类型。原始帧可能是 GB 量级,因此复制和删除数据似乎不是正确的方法,并且迭代现有列以将它们添加到新帧似乎不是一个非常 ' R'的做事方式。

【问题讨论】:

  • 您是否还想要与原始数据一样多的 (具有 NA 值)?还是你想要零行?
  • 你为什么要这个?

标签: r


【解决方案1】:

如果你想要零行,引用第零行:

iris[0,]
[1] Sepal.Length Sepal.Width  Petal.Length Petal.Width  Species     
<0 rows> (or 0-length row.names)
sapply(iris[0,],class) # still has correct column classes
Sepal.Length  Sepal.Width Petal.Length  Petal.Width      Species 
   "numeric"    "numeric"    "numeric"    "numeric"     "factor" 

如果要NA数据,在原始数据的行域外引用:

iris[nrow(iris)+1:3,]
     Sepal.Length Sepal.Width Petal.Length Petal.Width Species
NA             NA          NA           NA          NA    <NA>
NA.1           NA          NA           NA          NA    <NA>
NA.2           NA          NA           NA          NA    <NA>

【讨论】:

  • 完美 - 您的第一个答案正是我想要的。谢谢!
猜你喜欢
  • 1970-01-01
  • 2013-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-31
  • 1970-01-01
  • 2018-10-26
相关资源
最近更新 更多