2016-04-22 60 views
0

我正在從edx做一個「介紹r」,並且無法理解。 這是我的數據框被稱爲planets_df:數據幀元素的選擇

 name    type diameter rotation has_rings 
    1 Mercury Terrestrial planet 0.382 58.64  FALSE 
    2 Venus Terrestrial planet 0.949 -243.02  FALSE 
    3 Earth Terrestrial planet 1.000  1.00  FALSE 
    4 Mars Terrestrial planet 0.532  1.03  FALSE 
    5 Jupiter   Gas giant 11.209  0.41  TRUE 
    6 Saturn   Gas giant 9.449  0.43  TRUE 
    7 Uranus   Gas giant 4.007 -0.72  TRUE 
    8 Neptune   Gas giant 3.883  0.67  TRUE 

,我想選擇直徑和旋轉列的元素爲第三排「地球」。我知道我可以通過

earth_data <- planets_df[3,c("diameter", "rotation")] 

做到這一點。然而,我想我還可以通過選擇該行:

但是這給了我:

diameter rotation 
NA  NA  NA 

但我不明白爲什麼這樣呢,我想既然你可以按名字選擇列,你也可以用相同的方式選擇行。有人能解釋我爲什麼這樣嗎?

回答

1

在你的代碼的問題是在這裏:

你需要的是獲得有「地球」,在「名稱」列中的所有行。 這是通過:

planets_df[planets_df[,"name"] =="Earth",] 

所以全行應爲:

earth_data <- planets_df[planets_df[,"name"]=="Earth",c("diameter", "rotation")]