2016-11-18 22 views
1

私はデータIが値SinusArrAHBで余分な列IDを追加したいR:ID列を追加する際に `ID:LHSをリストに強制的に強制する 'のはなぜですか?

 N11.1 N22.2 N33.1 N44.1 N21.1 N31.1 N32.1 
Sinus  1  0  0 0.0  0  0 12.0 
ArrAHB  1  0  0 0.1  0  0 20.9 

を持っています。

require(lattice) 
Sinus<-c(1,0,0,0,0,0,12) 
ArrAHB<-c(1,0,0,0.1,0,0,20.9) 
Labels<-c("N11.1","N22.2","N33.1","N44.1","N21.1","N31.1","N32.1") 
ID<-c("Sinus","Arr/AHB") 
data.female<-data.frame(Sinus,ArrAHB,row.names=Labels) 
data.female<-t(data.female) 

> data.female$ID<-ID 

Warning message: 
In data.female$ID <- ID : Coercing LHS to a list 

なぜID列の作成はdata.frameに強制を引き起こすのでしょうか?

p.s.私の目標は、新しいID列hereを必要barchart(N11.1+N22.1+N33.1+N44.1+N21.1+N31.1+N32.1 ~ ID, data=data.female)ためhereのような形式にこのデータを取得することです。このIDの追加が時々動作し、時にはない理由は、私が理解することはできません。説明してください。

+2

't'は行列を返します。 '$ < - 'を使って行列に代入することはできません。したがって、Rは行列をリストに強制する。あなたはおそらくこれに次善の方法で近づいていますが、プロットがどのように見えるようになっているかわからないので、良い選択肢を示唆することはできません。 – Roland

答えて

3

転記結果がt()であるため警告が表示されます。 Matriciesにはアクセス可能な列名がありません。あなたはIDの割り当てを行う前に、この作品as.data.frame()

を使用して、データフレームに行列を強制する必要があります。

Sinus<-c(1,0,0,0,0,0,12) 
ArrAHB<-c(1,0,0,0.1,0,0,20.9) 
Labels<-c("N11.1","N22.2","N33.1","N44.1","N21.1","N31.1","N32.1") 
ID<-c("Sinus","Arr/AHB") 
data.female<-data.frame(Sinus,ArrAHB,row.names=Labels) 
data.female<-as.data.frame(t(data.female)) 

data.female$ID<-ID 

データフレームは列単位で定義され、行単位ではありません。データフレームの定義は列単位で行う必要があります。

+0

ありがとう、シンプルで作品+1 – hhh

関連する問題