如何在R中插入空白列

时间:2014-06-25 08:49:09

标签: r dataframe

我有一个数据框"数据"它有大约20列。看起来有点像:

Name Data1 Data2 Data3 Data4 Data5 ....
Fred   2     0     1     3    7  
Tim    2     3     6     5    6
Jack   3     1     1     2    6
Denise 4     5     0     2    8

我想插入三列" ID","年龄","学校"在第一栏之后。

有没有这样做?

我试过了:

ID<-''
Age<-''
School<-''
data<-cbind(data[,1], ID, Age, School, data[,2:ncol(data)])

它添加了这些列,但第一列变为&#34;数据[,1]&#34;并且我无法重命名它。

2 个答案:

答案 0 :(得分:2)

试试这个:

> data = read.table(header=T, text='Name Data1 Data2 Data3 Data4 Data5

Fred   2     0     1     3    7  
Tim    2     3     6     5    6
Jack   3     1     1     2    6
Denise 4     5     0     2    8')

> cbind(Name=data[,1], ID="", Age="", School="", data[,2:ncol(data)])

    Name ID Age School Data1 Data2 Data3 Data4 Data5
1   Fred                   2     0     1     3     7
2    Tim                   2     3     6     5     6
3   Jack                   3     1     1     2     6
4 Denise                   4     5     0     2     8

答案 1 :(得分:1)

Append也可以这样做。

dat <- read.table(text = "
Name Data1 Data2 Data3 Data4 Data5
Fred   2     0     1     3    7  
Tim    2     3     6     5    6
Jack   3     1     1     2    6
Denise 4     5     0     2    8", header = TRUE)

dat.new <- data.frame(append(dat, list(ID = "", age = ""), after =  2))
head(dat.new)
#    Name Data1 ID age Data2 Data3 Data4 Data5
#1   Fred     2            0     1     3     7
#2    Tim     2            3     6     5     6
#3   Jack     3            1     1     2     6
#4 Denise     4            5     0     2     8

我们这里使用的事实是data.frame只是list等长(几乎)的向量。