数据框元素的选择
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")]
我正在做一个来自 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")]