从一个数据帧添加列作为另一个数据帧的最后一列

时间:2013-10-06 13:06:42

标签: r kaggle

我是R和机器学习算法的新手,并尝试使用kaggle scikit example学习。

我有以下两个数据框:

> str(d.train)
'data.frame':   1000 obs. of  40 variables:
 $ V1 : num  0.299 -1.174 1.192 1.573 -0.613 ...

> str(d.trainLabels)
'data.frame':   1000 obs. of  1 variable:
 $ V1: int  1 0 0 1 0 1 0 1 1 0 ...

根据我的理解,大多数R工具都要与同一数据框内的类信息一起使用。出于这个原因,我试图将trainLabels添加为列车数据框的最后一列。

我尝试过以下代码:

# http://www.gm.fh-koeln.de/~konen/WPF-DM-Cup/DM-Template/ClassifyTemplate/utils_DMC.r
######################################################################################
# bind the column with name response.predict and contents vec as last column
# to data frame d
######################################################################################
bind_response <- function(d,response.predict,vec) 
{
    # drop column response.predict if there, do nothing if not there
    d <- d[,setdiff(names(d),response.predict)]
    # bind column response.predict as last column to data frame d
    d <- cbind(d, prediction=vec)
    names(d)[names(d)=="prediction"] <- response.predict

    return(d)
}

d.totalTrain <- bind_response(d.train, d.trainLabels, "1")

但我不确定结果是我想要的结果:

> str(d.totalTrain)
'data.frame':   1000 obs. of  41 variables:
...
 $ V40                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                : num  0.101 -1.818 2.987 1.883 0.408 ...
 $ c(1, 0, 0, 1, 0, 1, 0, 1, ...

1 个答案:

答案 0 :(得分:2)

首先重命名它会做你想要的吗?

colnames(d.trainLabels) <- "V41"
cbind( d.train, d.trainLabels )