选择数据框元素

时间:2016-04-22 10:08:18

标签: r dataframe rows

我正在做一个"介绍r"来自edx并且无法理解某些东西。 这是我的数据帧,名为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")]

然而,我想我也可以通过以下方式选择该行:

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

但是这给了我:

diameter rotation
NA       NA       NA

但是我不明白为什么会这样,我想因为你可以按名字选择列,你也可以用同样的方式选择行。有人可以解释一下为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

您的代码中存在问题:

new <- b[b$ID %in% a$ID, ]
cbind(ID = a$ID, a[-1] + new[-1])

#  ID  a  b  c
#1  A  9  7 18
#2  B 11  6  7
#3  Z  7 17 21
#4  H 45 56 17

您想要的是获取“名称”列中包含“地球”的所有行。 这是通过以下方式实现的:

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

所以完整的一行是:

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