2017-08-04 6 views
0

のセルをコピーする私は、このテーブルを変換する必要があります。この中ダウンR

1 a b 0.689723476 0.149916917 
    a b 0.200907662 0.109557062 
    a b 0.684007597 0.703492299 
    a b 0.437375902 0.074223984 
    a b 0.090612241 0.146617232 
    a b 0.526821187 0.895595247 
2 a b 0.507794544 0.731096076 
    a b 0.688987918 0.405801748 
    a b 0.462341505 0.203533346 
    a b 0.750096552 0.889744763 
    a b 0.555074241 0.06610472 

1 a b 0.689723476 0.149916917 
1 a b 0.200907662 0.109557062 
1 a b 0.684007597 0.703492299 
1 a b 0.437375902 0.074223984 
1 a b 0.090612241 0.146617232 
1 a b 0.526821187 0.895595247 
2 a b 0.507794544 0.731096076 
2 a b 0.688987918 0.405801748 
2 a b 0.462341505 0.203533346 
2 a b 0.750096552 0.889744763 
2 a b 0.555074241 0.06610472 

新しい番号が表示されるまで基本的に、私は下向きに最初の行を繰り返す必要があり、その番号が繰り返されます。これがあれば上記のセルの値を取る新しい列を作成します

if IsNull([Row0:Column1]) then [Row-1:NewColumn] else [Row0:Column1 endif 

:私は通常、私はこのようなものですかの迅速なステートメントを実行する複数行の式と呼ばれるツールを使用してAlteryxでこれを行いますそれはnullです。それ以外の場合は、新しい値がコピーされます。

この問題のRまたは他の解決策に類似したものはありますか? dputデータを含む

UPDATE

structure(list(X1 = c(1L, NA, NA, NA, NA, NA, 2L, NA, NA, NA, 
NA, NA, NA, NA, NA), X2 = c("a", "a", "a", "a", "a", "a", "a", 
"a", "a", "a", "a", "a", "a", "a", "a"), X3 = c("b", "b", "b", 
"b", "b", "b", "b", "b", "b", "b", "b", "b", "b", "b", "b"), 
    X4 = c(0.057520727, 0.54421869, 0.695381681, 0.866708518, 
    0.764246757, 0.622363342, 0.023082188, 0.140441859, 0.404509135, 
    0.806008319, 0.649705949, 0.607341742, 0.275179259, 0.199698605, 
    0.420250037), X5 = c(0.826617034, 0.338437818, 0.069566611, 
    0.95791903, 0.900005669, 0.533003641, 0.075841125, 0.200099759, 
    0.858293828, 0.271342591, 0.308531235, 0.344739272, 0.259006154, 
    0.824994839, 0.610793113)), .Names = c("X1", "X2", "X3", 
"X4", "X5"), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, 
-15L), spec = structure(list(cols = structure(list(X1 = structure(list(), class = c("collector_integer", 
"collector")), X2 = structure(list(), class = c("collector_character", 
"collector")), X3 = structure(list(), class = c("collector_character", 
"collector")), X4 = structure(list(), class = c("collector_double", 
"collector")), X5 = structure(list(), class = c("collector_double", 
"collector"))), .Names = c("X1", "X2", "X3", "X4", "X5")), default = structure(list(), class = c("collector_guess", 
"collector"))), .Names = c("cols", "default"), class = "col_spec")) 
+0

入力データの形式は何ですか。データフレームには2〜5列しかありませんか? – CPak

+0

はい、それはデータフレームです –

+2

あなたのデータの 'dput'を投稿してください。基礎となるデータ型は解法に影響を与える可能性があります。 – lmo

答えて

0

我々はtidyrパッケージからfill機能を使用することができます。 dtは元のデータフレームです。 dt2が最終出力です。

library(tidyr) 
dt2 <- fill(dt, X1) 
関連する問題