我有一个数据框"数据"它有大约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;并且我无法重命名它。
答案 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
等长(几乎)的向量。