2017-07-17 7 views
0

明らかに、私はデータの加算、乗算、減算または除算はしたくありません。新しい列には、最初の列と2番目の列の両方の情報をすべて含める必要があります。ここに私が意味するものの例があります。2つのデータ列を1つの長いデータ列にする方法

 data 1  data 2 new data 
1  Q   1   Q 
2  T   5   T 
3  R   3   R 
4        1 
5        5 
6        3 

私が見ている値は、カテゴリではありませんが、その違いを示すために例として使用しました。 cbind.fill機能の

+0

'union'あなたが探しているかもしれないものです。 –

+1

2つのデータ列が "dat"という2列のdata.frameに含まれている場合、 'Reduce(union、dat)'を実行できます。 – lmo

+0

同じ値の新しいデータに対して更新を実行するデータ1に挿入トリガを作成します。新しい値に設定された新しいデータのみで挿入を実行するデータ2に挿入後トリガを作成します。 –

答えて

1
cbind.fill <- function(...){ 
    # From a SO answer by Tyler Rinker 
    nm <- list(...) 
    nm <- lapply(nm, as.matrix) 
    n <- max(sapply(nm, nrow)) 
    do.call(cbind, lapply(nm, function (x) 
    rbind(x, matrix(, n-nrow(x), ncol(x))))) 
} 

df1 <- data.frame("data 1"=c("Q","T","R"),"data 2"=c(1,5,3), stringsAsFactors = F) 

df2 <- cbind.fill(df1, c(df1$data.1, df1$data.2)) 
colnames(df2) <- c(colnames(df2)[1:2], "new data") 
df2 
data.1 data.2 new data 
[1,] "Q" "1" "Q" 
[2,] "T" "5" "T" 
[3,] "R" "3" "R" 
[4,] NA  NA  "1" 
[5,] NA  NA  "5" 
[6,] NA  NA  "3" 

出典:cbind a df with an empty df (cbind.fill?)

関連する問題