2012-01-20 18 views
14

我最近开始使用R,并且仍然习惯于其数据类型等。我从数据库中提取数据,对数据执行计算,然后存储一些结果到数据库。以编程方式创建数据框并向其中添加行

计算的数据将被存储在数据库中的特定表中。我想创建一个数据框,其中的列与db表匹配(即相同的名称和数据类型[接近])。为了做到这一点,我需要能够做到以下几点:

  1. 编程方式创建一个数据帧以指定的“列” 我知道我可以用data.frame创建这个(),但其并不清楚如何创建一个只有列标题的数据框,但没有数据(行)。

  2. 编程方式将行添加到在步骤1中创建的空数据帧以上

任何帮助(最好用一个片段)将是非常有用

回答

22
empty <- data.frame(a = numeric(), b = factor(), c = character()) 
filled <- rbind(empty, data.frame(a = 1, b = factor("abc"), c = "def")) 

这在动作:

> empty <- data.frame(a = numeric(), b = factor(), c = character()) 
> empty 
[1] a b c 
<0 rows> (or 0-length row.names) 
> empty$a 
numeric(0) 
> empty$b 
factor(0) 
Levels: 
> empty$c 
character(0) 
> filled <- rbind(empty, data.frame(a = 1, b = factor("abc"), c = "def")) 
> summary(filled) 
     a  b   c    
Min. :1 abc:1 Length:1   
1st Qu.:1   Class :character 
Median :1   Mode :character 
Mean :1        
3rd Qu.:1        
Max. :1 
+0

顺便说一句,我可以替换已填充的< - rbind(空,data.frame(a = 1,b = factor(“abc”),c =“d ef“)) with:empty < - rbind(empty,data.frame(a = 1,b = factor(”abc“),c =”def“))这样我就不会为每个行添加? –

+8

你可以做到这一点。但无论如何:你在R地狱的第二圈:http://www.burns-stat.com/pages/Tutor/R_inferno.pdf – Thierry

相关问题