2016-07-08 12 views
0

melt(),split(),reshape()などのRコードを試していますが、いずれも問題を本当に解決できませんでした。私はLong_groupB_lymph_countを持たないが、代わりに "Aubagio_0"、 "Aubagio_1"、 "Aubagio_2"という3つの異なる列を持つ下位のものに基づいて新しいdfを作成したいと思います。特定のMS.number =患者IDのB_lymph_counts他の列の要因に応じて、データフレームの数値変数を変更してください

カレントDF:

MS.number B_Lymph_count Long_group 
13 "MS072/1" " 57014"  "Aubagio_0" 
14 "MS072/1" "116730"  "Aubagio_1" 
46 "MS1246/1" "117843"  "Aubagio_0" 
47 "MS1246/1" "209583"  "Aubagio_1" 
52 "MS1253/1" " 71434"  "Aubagio_0" 
53 "MS1253/1" "130382"  "Aubagio_1" 
100 "MS717/1" " 63916"  "Aubagio_0" 
101 "MS717/1" " 62434"  "Aubagio_1" 
102 "MS717/1" " 43533"  "Aubagio_2" 

DFが、私は返事のための非常に多く、すでにありがとうこれはR. で可能です

MS.number Aubagio_0 Aubagio_1 Aubagio_2 
MS717/1  63916  62434  43533 
MS1253/1  71434  130382  NA 
... 

希望を生産したいです!

答えて

1

あなたはfillパラメータが空のセルに値を指定する

library(reshape2) 
dcast(data = d, MS.number ~ Long_group, value.var = "B_Lymph_count", fill=0) 

      Aubagio_0 Aubagio_1 Aubagio_2 
MS072/1  57014 116730   0 
MS1246/1 117843 209583   0 
MS1253/1  71434 130382   0 
MS717/1  63916  62434  43533 

を試すことができます。たとえば、NA(デフォルト)を設定することもできます。

データ

d <- structure(list(MS.number = structure(c(1L, 1L, 2L, 2L, 3L, 3L, 
4L, 4L, 4L), .Label = c("MS072/1", "MS1246/1", "MS1253/1", "MS717/1" 
), class = "factor"), B_Lymph_count = c(57014L, 116730L, 117843L, 
209583L, 71434L, 130382L, 63916L, 62434L, 43533L), Long_group = structure(c(1L, 
2L, 1L, 2L, 1L, 2L, 1L, 2L, 3L), .Label = c("Aubagio_0", "Aubagio_1", 
"Aubagio_2"), class = "factor")), .Names = c("MS.number", "B_Lymph_count", 
"Long_group"), class = "data.frame", row.names = c("13", "14", 
"46", "47", "52", "53", "100", "101", "102")) 
+0

非常にありがとうございました!それは即座に働いた! –

関連する問題