【问题标题】:creating dataframe from filtering and subsetting separate dataframe?通过过滤和子集单独的数据框创建数据框?
【发布时间】:2021-01-10 23:12:23
【问题描述】:

我有以下数据框 (X1),我想从中创建一个新数据框以仅包含 2010:2050 年的年份和 PopTotal。

如何将此信息提取到新的 df 中?然后我将使用回归模型对 df 进行预测。

LocID Location year PopMale PopFemale PopTotal PopDensity
277246   900    World 1950 1266260   1270171  2536431     19.497
277247   900    World 1951 1290238   1293797  2584034     19.863
277248   900    World 1952 1313855   1317007  2630862     20.223
277249   900    World 1953 1337453   1340156  2677609     20.582
277250   900    World 1954 1361314   1363533  2724847     20.945
277251   900    World 1955 1385658   1387362  2773020     21.316

我希望输出看起来像这样:

year PopTotal
2010 123
2011 456
... ...
2050 789

【问题讨论】:

  • 你能显示预期的输出吗
  • 您输入的数据是您在帖子中显示的还是预期的?
  • 刚刚添加到原帖,见谅。
  • 我认为您只需要select 列即df1[c("year", "PopTotal")]
  • 但是我不会包括所有年份,而只包括 2010 年到 2050 年之间的年份吗?

标签: r dataframe subset


【解决方案1】:

在这里,我们可以subsetselect

df2 <- subset(df1, year %in% 2010:2050, select = c(year, PopTotal))

或者另一个选项是filter

library(dplyr)
df2 <- df1 %>%
         select(year, PopTotal) %>%
         filter(year %in% 2010:2050)

【讨论】:

    【解决方案2】:

    使用betweendata.table 选项

    setDT(df)[between(year, 2010, 2050), .(year, PopTotal)]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-11
      • 2017-04-01
      相关资源
      最近更新 更多