私のDFは、次のようになります。Rの複数の列から行を追加するにはどうすればよいですか?
ID V1 V2 V3
A 100 200
B 100
C 300
D 400
E 223 233 4
私はRでそれを変換したい、複数の「V」の列がIDを繰り返すことで、互いの下に来るよう:
最高です何ID V1
A 100
A 200
B 100
C 300
D 400
E 223
E 233
E 4
RやExcelでこれを行う方法?
私のDFは、次のようになります。Rの複数の列から行を追加するにはどうすればよいですか?
ID V1 V2 V3
A 100 200
B 100
C 300
D 400
E 223 233 4
私はRでそれを変換したい、複数の「V」の列がIDを繰り返すことで、互いの下に来るよう:
最高です何ID V1
A 100
A 200
B 100
C 300
D 400
E 223
E 233
E 4
RやExcelでこれを行う方法?
私たちは、あなたがまたtidyr試すことができmelt
library(data.table)
setnames(melt(setDT(df), id.var="ID", na.rm=TRUE)[order(ID), -2, with = FALSE], 2, "V1")[]
# ID V1
#1: A 100
#2: A 200
#3: B 100
#4: C 300
#5: D 400
#6: E 223
#7: E 233
#8: E 4
正確に何を探していたのですか?ありがとう! –
を使用することができます:あなたは "新しい" の欄には、このコーディ(ライブラリ "dplyr")を追加したくない場合は
library(tidyr)
df <- df %>% gather(new, V1, 2:4) %>% filter(!is.na(V1))
を:
%>% select(id, V1)
ギャザーも 'na.rm = TRUE'を持っています – akrun
私はこれをやってみましたが、エラーがありました:フィルタ(。、!is.na(V1))のエラー:オブジェクト 'V1'が見つかりません –
ここでは、チャクラデータに類似した解法があります。[リンク](http://stackoverflow.com/questions/25045301/removing-incomplete-cases-from-output-of-tidyr-gather-r) –
「[ワイドフォーマットから高位フォーマットへの(プロット用の)時系列データの再現]」の可能な複製](http://stackoverflow.com/questions/1181060) /作成時系列データ - ワイドフォーマットからプロットフォーマット - ) – zx8754