数据框元素的选择

Selection of data frame elements

我正在做一个来自 edx 的 "introduction to 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

我想 select 第三行的直径和旋转列中的元素 "Earth"。我知道我可以通过

做到这一点
earth_data <- planets_df[3,c("diameter", "rotation")]

不过,我想我也可以 select 那一行:

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

但这给了我:

diameter rotation
NA       NA       NA

但我不明白为什么会这样,我想既然你可以按名称 select 列,你也可以用同样的方式 select 行。谁能解释一下这是为什么?

您的代码中的问题在这里:

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

您想要的是获取在 "name" 列中具有 "Earth" 的所有行。 这是通过以下方式实现的:

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

所以整行是:

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