2014-11-04 56 views
0

的data.frame(d1.csv)看起來像:data.frame的存儲行等於top.20。從列frequens的因素,即名稱

Age Height Weight  Sport 
23 170  60  Judo 
33 193 125 Athletics 

我必須做出紐約data.frame像D2前20名的應使用下面這個charachters存儲在

names(top.20.sports) 

[1] "Athletics"  "Swimming"  "Football"  "Rowing"   

...並有能力使用或match()喜歡%in%使用subset()就像在%名稱(top.20.sports)子集=體育%D1。

我試過幾件事情萌芽我在這個新的,我失去了一些東西......

d2<-subset(d1, (Sport %in% names(top.20.sports))) 

給孔列表,同樣與

d2 <- d1[d1$Sport %in% names(top.20.sports),] 

比賽給了我一堆( 42)用 「NA」

d2<-d1[,tolower(names(top.20.sports)) %in% d1[,4]] 
Dataframe with 0 colomns und 9038 rows 

(9038行是正確的芽在哪裏的數據?)

+0

當您使用'tolower'它提出的名稱所有小寫和未能匹配的已大寫名稱。 – 2014-11-04 22:20:02

+0

謝謝,與toupper或casefold bud一樣,我發現無論如何也沒有意義,也沒有意義? – 2014-11-04 22:43:01

+0

如果子集(d1,(%names(top.20.sports)中的Sport%))給出_whole_列表,那麼....它就是這樣。所有的體育項目都在前20名。 – 2014-11-04 22:48:13

回答

0

沒有錯誤,就像BondedDust告訴我的那樣:「如果子集(d1,(%names(top.20.sports))中的Sport%)給出了整個列表,那麼....它就是這樣。所有的體育項目都在排名前20位「 只是它永遠不會是孔列表...:

我想我有10384行

-10384 24 221 110 Basketball-

籃球作爲最後一個芽的行的數量是不行的數量:(D2)

nrow

[1] 8009

暗淡(D2)

[1] 8009 4

相關問題